@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, если тру в один массив добавить (либо сразуже в этом перемещать в начало) все остальное в другой (если разбито на два массива)
Потом слить их (опять же, если разбито на два массива)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы