此文章转发自:https://blog.csdn.net/qq5201314wx/article/details/121612335
对于二维数组PHP没有目前函数可以直接解决
可以利用下面二个函数对二维数组以某个字段排序
1.array_column() 返回输入数组中某个单一列的值。
2.array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。
代码实现(根据 num字段从高到低):
array(12) {
[0]=>
array(2) {
["name"]=>
string(9) "司徒镇"
["num"]=>
float(57.6)
}
[1]=>
array(2) {
["name"]=>
string(9) "延陵镇"
["num"]=>
float(46.9)
}
[2]=>
array(2) {
["name"]=>
string(9) "珥陵镇"
["num"]=>
float(25.5)
}
[3]=>
array(2) {
["name"]=>
string(9) "导墅镇"
["num"]=>
float(36.9)
}
[4]=>
array(2) {
["name"]=>
string(9) "黄塘镇"
["num"]=>
float(64.9)
}
[5]=>
array(2) {
["name"]=>
string(9) "吕城镇"
["num"]=>
float(38.6)
}
[6]=>
array(2) {
["name"]=>
string(9) "陵口镇"
["num"]=>
float(25.5)
}
[7]=>
array(2) {
["name"]=>
string(9) "访仙镇"
["num"]=>
float(32)
}
[8]=>
array(2) {
["name"]=>
string(9) "界牌镇"
["num"]=>
float(58.5)
}
[9]=>
array(2) {
["name"]=>
string(9) "丹北镇"
["num"]=>
float(230.3)
}
[10]=>
array(2) {
["name"]=>
string(12) "云阳街道"
["num"]=>
float(209.7)
}
[11]=>
array(2) {
["name"]=>
string(12) "曲阿街道"
["num"]=>
float(319.1)
}
}
代码实现($data[‘data’]上面代码源数据):
//根据字段num对数组$data进行降序排列
$all_num = array_column($data['data'],'num');
array_multisort($all_num,SORT_DESC,$data['data']);
结果:
array(12) {
[0]=>
array(2) {
["name"]=>
string(12) "曲阿街道"
["num"]=>
float(319.1)
}
[1]=>
array(2) {
["name"]=>
string(9) "丹北镇"
["num"]=>
float(230.3)
}
[2]=>
array(2) {
["name"]=>
string(12) "云阳街道"
["num"]=>
float(209.7)
}
[3]=>
array(2) {
["name"]=>
string(9) "黄塘镇"
["num"]=>
float(64.9)
}
[4]=>
array(2) {
["name"]=>
string(9) "界牌镇"
["num"]=>
float(58.5)
}
[5]=>
array(2) {
["name"]=>
string(9) "司徒镇"
["num"]=>
float(57.6)
}
[6]=>
array(2) {
["name"]=>
string(9) "延陵镇"
["num"]=>
float(46.9)
}
[7]=>
array(2) {
["name"]=>
string(9) "吕城镇"
["num"]=>
float(38.6)
}
[8]=>
array(2) {
["name"]=>
string(9) "导墅镇"
["num"]=>
float(36.9)
}
[9]=>
array(2) {
["name"]=>
string(9) "访仙镇"
["num"]=>
float(32)
}
[10]=>
array(2) {
["name"]=>
string(9) "珥陵镇"
["num"]=>
float(25.5)
}
[11]=>
array(2) {
["name"]=>
string(9) "陵口镇"
["num"]=>
float(25.5)
}
}