Сокращение строки

4you

еееххххх....
Сокращение строки

Имею список нескольки команд (допустим по футболу). Мне необходимо сократить названия тех команд длина которых больше 10 символов. Может кто сталкивался с подобной задачей. Подскажите пожалуйста саму идею, а то никакой логики не могу придумать или увидеть.
 

4you

еееххххх....
Да чем резать понятно. А вот чтобы после этого логичные названия оставались??? Например Zenit St. Petersburg - Zenit St.Pet. или что-то в этоь роде...
 

Tandemich

Мерфи был оптимистом
ПОРЕЗАТЬ ЭХПЛОДОМ НА ЧАСТИ ЧЕРЕЗ ПРОБЕЛ
УЗНАТЬ ДЛИНУ ПЕРВОГО ЭЛЕМЕНТА(ОН Я ТАК ПОНИМАЮ НЕ СОКРАЩАЕТСЯ)
ОСТАЛЬНЫЕ ЭЛЕМЕНТЫ СОКРАЩАЕМ
1- ДО ОДНОГО СИМВОЛА
2 - ДО ДВУХ СИМВОЛОВ ЕСЛИ ИДУТ ПОДРЯД ДВЕ СОГЛАСНЫЕ ИЛИ ВТОРАЯ БУКВА СОГЛАСНАЯ
3 - ДО ТРЕХ СИМВОЛОВ ЕСЛИ ПОЗВОЛЯЕТ ДЛИНА ПЕРВОГО ЭЛЕМЕНТА И ТРЕТЬИ СИМВОЛЫ НЕ ГЛАСНЫЕ
 

sergo

Guest
наверно, лучше хранить в базе как полные названия, так и сокращения, и выводить что надо в конкретном случае
 

trent

Developer
возможно где-то ошибся
PHP:
$str = "12 34 5 6 7 890";
$strArr = explode(" ", $str);
$strArrSize = sizeof($strArr);
$allLength = 0;
$maxLength = 10;
$newStr = "";
for ($i = 0; $i < $strArrSize; $i++) {
	$currLength = strlen($strArr[$i]);
	if ($currLength + $allLength <= $maxLength)
	{
	    $newStr .= $strArr[$i]." ";
	}
	else
	{
		break;
	}
	$allLength += $currLength + 1;
	print "i=".$i."<br>";
}
if (trim($newStr) == "")
{
    $newStr = substr($str, 0, $maxLength);
}
print $newStr;
кстати не мешает проверить :)
 

4you

еееххххх....
trent спасибо тебе огромное, но это не до конца решает проблему. В порезанном названии не прослеживается логика с предидущем названием. Например возьмём футбольную комманду "Manchester United". Название длинное => надо сокращать. Твоим способом получим просто "Manchester", а хотелось бы "Manchester Utd.". Сдулать это касательно этой команды нет проблем, но если будет другле название??? Понять или придумать сам алгоритм, а за реализацией дело не станет.
 

trent

Developer
Тады предлагаю написать Семантический анализ :)
Если сделаешь, то добро пожаловать в какманду разработчиков "Yandex" :)
 
Сверху