数组排序 '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');
我想根据 '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');