我有一个如下数组,我想按键#34; min_price"的顺序对该数组进行升序和降序排序。我试过,我跟着this link仍然无法正常工作。任何帮助将不胜感激。
这是数组:
Array
(
[0] => Array
(
[property_id] => 116
[min_price] => 3487
)
[1] => Array
(
[property_id] => 131
[min_price] => 3035
)
[2] => Array
(
[property_id] => 171
[min_price] => 7999
)
)
function cmp($a, $b) {
if ($a['min_price'] == $b['min_price']) {
return 0;
}
return ($a['min_price'] < $b['min_price']) ? -1 : 1;
}
uasort($data, 'cmp');
我想使用这个数组升序和降序。
答案 0 :(得分:0)
您可以使用新的组合比较运算符(AKA Spaceship)(自php-7起):
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
announcement中的更多信息。
所以你可以写:
usort($Array, function($a, $b) {
return $a['min_price'] <=> $b['min_price'];
});
希望这个帮助
答案 1 :(得分:0)
这是一个排序的例子
<?php
$array = array(
0 =>array(
'name' => 'Rnukir',
'total' => '1'),
1 => array(
'name' => 'Arnesista',
'total' => '2'),
2 => array(
'name' => 'Omas',
'total' => '3'),
3 => array(
'name' => 'John',
'total' => '4')
);
foreach ($array as $key => $row) {
$name[$key] = $row['name'];
$total[$key] = $row['total'];
}
print_r($total);
array_multisort($total, SORT_DESC, $array);
// array_multisort($total, SORT_DESC, $name, SORT_ASC $array);
echo "<pre>";
print_r($array);
echo "</pre>";
?>