PHP array_multisort выдает ошибку
Я новичок в PHP и пытаюсь отсортировать список ассоциативных массивов. Я хочу отсортировать их по семейному полю, просто по строке, в порядке убывания. Всякий раз, когда я пытаюсь отсортировать ассоциативный массив... массив, он выдает мне эту ошибку.
Warning: array_multisort(): Argument #1 is expected to be an array or a sort flag.
Код PHP
<?php
$allColors = array(
'0' => array(
"id"=> "1",
"family"=> "blue",
"name"=> "ariel blue",
"hex"=> "#339FFF"),
'3' => array(
"id"=> "3",
"family"=> "green",
"name"=> "forest",
"hex"=> "#FAFF33"),
'1' => array(
"id"=> "2",
"family"=> "blue",
"name"=> "aqua marine",
"hex"=> "#339FFF"),
'4' => array(
"id"=> "4",
"family"=> "green",
"name"=> "lime",
"hex"=> "#FAFF33"),
'2' => array(
"id"=> "5",
"family"=> "blue",
"name"=> "teal",
"hex"=> "#339FFF"),
'5' => array(
"id"=> "6",
"family"=> "green",
"name"=> "yellow-green",
"hex"=> "#FAFF33")
);
array_multisort($family, SORT_DESC, $allColors);
?>
1 ответ
Решение
Если вы пытаетесь отсортировать массив по "семейству", то первым параметром для array_multisort должно быть содержимое столбца "семейство".
array_multisort( array_column( $allColors, 'family' ), SORT_DESC, $allColors );