数组排序 'asc' 顺序 php/Cakephp

Array sort in 'asc' order php/Cakephp

我想根据 'eta' 对这个数组进行排序。最低的 eta 必须排在第一位。

我的数组是:

    Array
(
    [0] => Array
        (
            [company] => Uber
            [type] => Saloon
            [eta] => 8
            [destination_required] => N
            [reject_booking_request] => N
        )

    [1] => Array
        (
            [company] => greentomato
            [type] => Saloon
            [company_rating] => 80%
            [eta] => 10
            [destination_required] => N
            [reject_booking_request] => N
        )

    [2] => Array
        (
            [company] => CATALINA
            [type] => Exec
            [eta] => 12
            [destination_required] => Y
            [reject_booking_request] => N
        )

    [3] => Array
        (
            [company] => Uber
            [type] => Exec
            [eta] => 15
            [destination_required] => N
            [reject_booking_request] => N
        )

    [4] => Array
        (
            [company] => Hailo
            [type] => Taxi
            [eta] => 1
            [destination_required] => Y
            [reject_booking_request] => Y
        )

)

我想根据 'eta' 对这个数组进行排序。最低的 eta 必须排在第一位。

我试过用这个:

 $result = Set::sort($array, '{n}', 'asc');

但是它给出了一些错误。

你可以使用 usort:

usort($yourArray, function($a, $b) {
    return $a['eta'] - $b['eta'];
});

Usort 允许定义自定义排序回调函数作为第二个参数。在此方法的主体内,您可以定义比较算法。

如果方法 return 是一个负数,它会将 $b 变量向下移动数组,return 一个正数会将 $b 向上移动数组,并且 return 0保持 $b 在同一个地方。

为了简单起见,我们定义了一个内联回调方法。

您可以使用数组多重排序功能。

关注link了解更多信息。 http://php.net/manual/en/function.array-multisort.php

我在 cakephp 中做到了:

我的答案是:

Hash::sort($array, '{n}.eta', 'asc');