@Kostik_1993
Web Developer

Как реализовать подобный вывод с помощью php или jquery?

Необходимо, чтобы производители на сайте выводились на сайте в алфавитном порядке, с группировкой по первой букве.

А ааааааа
Б бббббб
В ввввввв
и т.д.

Как-то так
fen6C8ulTpc.jpg
или так
xJD-PqGtGhU.jpg

Сейчас они просто выводятся сортировкой по алфавиту, а хочется как-то так)).
Не прошу писать за меня, просто подкинуть пример, если есть, или какой-нибудь материал.
  • Вопрос задан
  • 3845 просмотров
Решения вопроса 3
// исходный массив
$artists = array('ffff', 'cccc', 'аaaa');

// сортируем и получаем: аaaa, cccc, ffff
asort($artists);

// цикл "для каждого артиста"
foreach($artists as $artist){

  // отрезаем первую букву и делаем её заглавной
  $first_letter = mb_strtoupper(substr($artist, 0, 1)); 

  // добавляем в массив список артистов на букву $first_letter
  $output[$first_letter][] = $artist; 

}
Ответ написан
Комментировать
denver
@denver
<?php

$phrases = array("Aaa", "abb", "acc", "bbb", "bb2");
$groups = array();

foreach($phrases as $phrase) {
        $firstLetter = mb_strtoupper($phrase{0});
        $groups[$firstLetter][] = $phrase;
}

var_dump($groups);
Ответ написан
shaks
@shaks
$data = $db->query(SELECT * FROM .... ORDER BY `name` ASC)->fetchAll(PDO::FETCH_ASSOC)

Пережевываем полученный массив
$result = array();
foreach($data as $d)
{
$first = mb_strtoupper($d['name']{0});
if(isset($result[$first]))
array_push($result[$first], $d);
else
$result[$first] = array($d);
}

----
Во вьюхе:
<?php foreach($result as $char=>$values): ?>
<tr>
<td class='большая буква'><?php echo $char ?></td>
.........а тут уже все названия будут в массиве $values, как это все выводить - дело верстки.........
</tr>
<?php endforeach;?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы