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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里