多维数组中的ksort不起作用

时间:2019-05-19 17:35:47

标签: php

我正在尝试通过键对数组的子数组进行排序。循环尝试,似乎不起作用。

$arr = array (
    15 => array (0=>'london',30=>'rome',21=>'berlin'),
    23 => array (0=>'london',34=>'rome',20=>'berlin'),
    19 => array (0=>'london',31=>'rome',22=>'berlin'),
  );


foreach ($arr as $item) {
    ksort($item);
}

知道为什么吗?

1 个答案:

答案 0 :(得分:2)

修改$item时,PHP将自动创建一个副本,并且仅更改该副本。为了防止这种情况,您可以使用参考:

foreach ($arr as &$item) 

或者您可以直接修改$arr

 foreach ($arr as $key => $item) {
   ksort($item);
   $arr[$key] = $item;
 }