我该如何对这个多维数组进行排序?

时间:2018-03-22 00:58:36

标签: php arrays usort

我不能对这个多维数组进行排序,我需要通过“packagenumber”值从低到高排序

这是我的阵列:

enter image description here

enter image description here

我正在尝试使用usort:

uasort($data, function($a, $b) {
            return strcmp($data['packagenumber'], $data['packagenumber']);
        });

4 个答案:

答案 0 :(得分:1)

尝试

It

答案 1 :(得分:1)

首先,您应该使用usort,因为您不需要维护数组的索引。

然后,这样的事情应该有效:

function int_compare($a, $b) {
    return $a['packagenumber'] - $b['packagenumber'];
}

usort($data, 'int_compare');

答案 2 :(得分:1)

如果您和我一样多次发现自己处于需要在类中进行此类排序并且需要将比较函数定义为类的成员的情况,那么您可以像这样调用它:

function mainFunction(){
$array = array(
            ['id' => 5, 'name' => 'Name', 'packagenumber' => 2],
            ['id' => 6, 'name' => 'Another', 'packagenumber' => 3],
            ['id' => 7, 'name' => 'Again', 'packagenumber' => 1]);

usort($array, array($this, 'int_compare'));
}

function int_compare($a, $b) {
        return $a['packagenumber'] - $b['packagenumber'];
}
在这种情况下,

$this是对包含比较函数的类的引用

HIH

答案 3 :(得分:0)

您可以提取列,对其进行排序,然后对其进行排序:

array_multisort(array_column($data, 'packagenumber'), $data);