【问题标题】:PHP array_multisort throws errorPHP array_multisort 抛出错误
【发布时间】:2017-10-21 22:42:02
【问题描述】:

我是 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);

?> 

【问题讨论】:

  • $family的内容是什么?您需要将其添加到您的示例代码中吗?
  • 嗯,错误信息很容易解释。参数 #1 ($family) 既不是数组也不是排序标志。

标签: php list sorting array-multisort


【解决方案1】:

如果您尝试按“family”对数组进行排序,那么 array_multisort 的第一个参数需要是“family”列的内容。

array_multisort( array_column( $allColors, 'family' ), SORT_DESC, $allColors );

【讨论】:

  • 如果 array_column() 是第一个,它不会对对象进行排序...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
  • 2012-01-18
  • 2013-04-15
相关资源
最近更新 更多