PHP 二维数组根据其中某个键(key)排序,解决 array_multisort(): Array sizes are inconsistent
2019-03-05| 程成| 541| 1| PHP技术

我有一个二维数组,我想根据其中的某个键(key)进行升降序排序。可以使用下面的 PHP 语句。

其中 $data 是二维数组,根据 chapter_rate 字段升序排序。


$data = array(
    array(
        'id' => 1,
        'chapter_rate' => 0.5,
        'name' => 'chengcheng',
    ),
    array(
        'id' => 2,
        'chapter_rate' => 0.8,
        'name' => 'mali',
    ),
    array(
        'id' => 3,
        'chapter_rate' => 1,
        'name' => 'zhangsan',
    )
);
$update_column = array_column($data,'chapter_rate');
array_multisort($update_column ,SORT_ASC, $data);


这里用到了两个数组方法,array_column()array_multisort()


1、其中 array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。


2、array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。


注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。


注释:您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使用默认值。



注意:

如果你报错了 array_multisort(): Array sizes are inconsistent,这是因为你 array_column() 数组数量和你 $data 数组数量不等引起的,自行打印出你的两个数组数量校验。



×
作者:程成
QQ:492245711