php 根据某个字段对二维数组这个数组排序

array(0=>array('id'=>1,'price'=>50),1=>array('id'=>2,'price'=>60));
就是整个是个数组,数组里面还有2个数组,我是想根据钱正序倒序排序,有没有好的方法根据里面的数组的price这个字段进行排序呢。
0对应1个数组,1对应一个数组。根据price倒序的话把2个数组换过来。

第1个回答  推荐于2018-03-19
试编写代码如下:

<?php
$array[] = array('id'=>1,'price'=>50);
$array[] = array('id'=>2,'price'=>70);
$array[] = array('id'=>3,'price'=>30);
$array[] = array('id'=>4,'price'=>20);

foreach ($array as $key=>$value){
$id[$key] = $value['id'];
$price[$key] = $value['price'];
}

array_multisort($price,SORT_NUMERIC,SORT_DESC,$id,SORT_STRING,SORT_ASC,$array);
echo '<pre>';
print_r($array);
echo '</pre>';
?>

运行结果:

Array
(
[0] => Array
(
[id] => 2
[price] => 70
)

[1] => Array
(
[id] => 1
[price] => 50
)

[2] => Array
(
[id] => 3
[price] => 30
)

[3] => Array
(
[id] => 4
[price] => 20
)

)本回答被提问者和网友采纳
第2个回答  2019-01-27
对多个数组或多维数组进行排序可以使用array_multisort()函数
bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] )

成功时返回 TRUE, 或者在失败时返回 FALSE.
相关案例请参考:https://panxu.net/article/8376.html
相似回答