查看: 197|回复: 0

[php/mysql] PHP按照二维数组元素的值进行正序和倒序排序的实现方法

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2026-3-29 09:07:12 | 显示全部楼层 |阅读模式
比如我有数组如下:

  1. <?php
  2. // 你的原始数组
  3. $admins = [
  4.     [
  5.         'id'=>1,
  6.         'bindstatus'=>1
  7.     ],
  8.     [
  9.         'id'=>2,
  10.         'bindstatus'=>0
  11.     ]
  12. ];

  13. // ========== 核心排序代码 ==========
  14. // 1. 先把 bindstatus 列单独提取出来
  15. $bindStatus = array_column($admins, 'bindstatus');

  16. // 2. 按 bindstatus 正序排序(SORT_ASC = 正序)
  17. array_multisort($bindStatus, SORT_ASC, $admins);

  18. // 输出排序结果
  19. print_r($admins);
  20. ?>
复制代码
最终print_r($admins)后的结果如下:
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [id] => 2
  6.             [bindstatus] => 0
  7.         )

  8.     [1] => Array
  9.         (
  10.             [id] => 1
  11.             [bindstatus] => 1
  12.         )
  13. )
复制代码
成功实现:bindstatus 0 排前面,1 排后面。
  1. 代码解释(超简单)
  2. array_column($admins, 'bindstatus')
  3. 把数组里所有的 bindstatus 值提取出来,得到:[1, 0]
  4. array_multisort(排序依据, 排序方式, 原数组)
  5. SORT_ASC = 正序(从小到大)
  6. SORT_DESC = 倒序(从大到小)
复制代码
  1. array_multisort($bindStatus, SORT_DESC, $admins);
复制代码

道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部