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条)

报告相同问题?