PHP对二维数组进行排序

此文章转发自: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)
  }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇