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 );
Другие вопросы по тегам