douxiongzhen2126 2016-10-24 07:51
浏览 21
已采纳

PHP:如何通过子数组的值来排序数组[重复]

This question already has an answer here:

Is it possible to order the below by the value of the child arrays, eg: age or height?

array (
  "John" => array (
    "height"=>175,
    "weight"=>85,
    "age"="24"
  ),
  "Phil" => array (
    "height"=>185,
    "weight"=>75,
    "age"="22"
  )
 "Jim" => array (
    "height"=>195,
    "weight"=>140,
    "age"="29"
  )
)

Eg outputting the order by age would be: Phil, John, Jim.

Is this possible with PHP?

</div>
  • 写回答

4条回答 默认 最新

  • dougangxin5695 2016-10-24 07:57
    关注

    Use usort: If you are still on PHP 5.2 or earlier, you'll have to define a sorting function first:

    function sortByAge($a, $b) {
        return $a['age'] - $b['age'];
    }
    
    usort($myArray, 'sortByAge');
    

    Starting in PHP 5.3, you can use an anonymous function:

    usort($myArray, function($a, $b) {
        return $a['age'] - $b['age'];
    });
    

    And finally with PHP 7 you can use the "spaceship operator":

    usort($myArray, function($a, $b) {
        return $a['age'] <=> $b['age'];
    });
    

    Source: Sort Multi-dimensional Array by Value

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?