[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ак сгруппировать список по алфавиту
Pukiman
Здравствуйте. Помогите сгруппировать текст по алфавиту. Пробовал сделать сам, но не получилось.


$terms = get_terms('category');
$count = count($terms);
if($count > 0){
foreach ($terms as $term) {
echo $term->name; echo '<br>';
}}


Получается
Аккумуляторные батареи <br>
Аксессуары для ноутбуков <br>
Аксессуары для планшетов <br>
Аксессуары для смартфонов <br>
Батарейки <br>
Браслеты для смартфонов <br>
Детские планшеты <br>
Зарядные устройства <br>


А нужно чтобы он их группировал по первой букве, например:
<div>
Аккумуляторные батареи
Аксессуары для ноутбуков
Аксессуары для планшетов
Аксессуары для смартфонов
</div>
<div>

Батарейки
Браслеты для смартфонов
</div>
<div>

Детские планшеты
</div>
<div>

Зарядные устройства
</div>
GET
Какая кодировка UTF-8 или 1251?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
GET
$terms = get_terms('category');
$letter=array();
foreach($terms as $val)
{
$first=mb_substr($val,0,1,'UTF-8');// или $first=substr($val,0,1); если 1251
$letter[$first][]=$val;
}

foreach($letter as $i=>$val)
{
echo '<br><div>'.$i.'<br>'.implode('<br>',$val).'</div>';
}


Думаю должно работать.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
kaww
еще вариант, за один проход и без временных массивов.
$letter = mb_substr(reset($terms)->name, 0, 1, 'UTF-8');
//$terms->rewind();$letter = mb_substr($terms->current(), 0, 1, 'UTF-8');//If $terms instanceof Itereator
echo '<div>';
foreach($terms as $term) {
$tLetter = mb_substr($term->name, 0, 1, 'UTF-8');
if ($tLetter !== $letter) {
$letter = $tLetter;
echo "</div><div>";
}
echo $term->name, "<br />";
}
echo '</div>';
GET
Цитата
еще вариант, за один проход и без временных массивов.


Да, я свой подпишу так "Вариант за 2 прохода, с временным массивом, но без условия в цикле". smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Pukiman
Огромное спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.