从多维数组

时间:2016-06-10 11:14:56

标签: php arrays sorting multidimensional-array

美好的一天,

整天都在寻找解决这个问题的方法。

My Array看起来像这样。

[status] => success
[city] => Array
    (
        [0] => Array
            (
                [street] => Array
                    (
                        [name] => 'las vegas'
                    )
             {
        [1] => Array
            (
                [street] => Array
                    (
                        [name] => 'york'
                    )
             {

我的问题是这个,我需要 根据[名称]对此数组进行排序(样本内容为' las vegas',' york'

已经做过像 usort uasort 以及我的鄙视,他们根本无法工作。

提前致谢!

更新 示例代码为usort

 foreach($myArr['city'] as $city) {
      foreach($city['street'] as $street) {
           function sort ($a, $b) {
                return strcmp ($a['name'], $b['name']);
           }
      }
 }

 usort($myArr, 'sort');

1 个答案:

答案 0 :(得分:1)

usort适用于您的情况。请检查您的代码。
您可能没有使用strcmp按名称对数组进行排序。

以下代码应该有效。

<?php
$cities=array(
   array(
     "street"=> array (
         "name"=> 'las vegas'
     )
   ),
   array(
     "street"=> array (
         "name"=> 'C'
     )
   ),
   array(
     "street"=> array (
         "name"=> 'york'
     )
   ),
   array(
     "street"=> array (
         "name"=> 'A'
     )
   ),
   array(
     "street"=> array (
         "name"=> 'B'
     )
   ),
);

function sortByName($a, $b) {
    return strcmp($a["street"]["name"], $b["street"]["name"]);
}

usort($cities, 'sortByName');

?>

https://eval.in/586734