@alexFXIII

Сортировка многомерного массива?

Допустим, имеется многомерный массив:
$data=array(
    array('text'=>'str1', 'year'=>'2010', 'author'=>10, 'theme' => 4),
    array('text'=>'str2', 'year'=>'2011', 'author'=>10, 'theme' => 0),
    array('text'=>'str3', 'year'=>'2009', 'author'=>20, 'theme' => 3),
    array('text'=>'str4', 'year'=>'2010', 'author'=>30, 'theme' => 1),
    array('text'=>'str5', 'year'=>'2010', 'author'=>20, 'theme' => 0),
    array('text'=>'str6', 'year'=>'2011', 'author'=>10, 'theme' => 2),
    array('text'=>'str7', 'year'=>'2011', 'author'=>20, 'theme' => 4),
    array('text'=>'str8', 'year'=>'2009', 'author'=>20, 'theme' => 0),
);


Нужно сформировать вывод данных(скажем, в таблицу) таким образом, чтобы строки с 'theme' => 0 попали бы на первые места, а все остальные строки имели ровно тот же порядок что и в массиве.
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ответы на вопрос 2
thewind
@thewind
php программист, front / backend developer
uasort($data, function($a, $b) {
 return $a['theme']==0 || $b['theme']==0 ? -1 : 0;
});

Попробуйте
Ответ написан
Комментировать
inik23
@inik23
типа разработчик
На вскидку.
Пройтись фором по массиву, в ифе проверять theme на 0, если тру в один массив добавить (либо сразуже в этом перемещать в начало) все остальное в другой (если разбито на два массива)
Потом слить их (опять же, если разбито на два массива)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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