Php 多维数组中的k排序不';行不通

Php 多维数组中的k排序不';行不通,php,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'),

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

$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);
}

知道为什么吗?

当您修改
$item
时,PHP将自动创建一个副本,并且只更改该副本。要防止出现这种情况,您可以使用引用:

foreach ($arr as &$item) 
或者您可以直接修改
$arr

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

当您修改
$item
时,PHP将自动创建一个副本,并且只更改该副本。要防止出现这种情况,您可以使用引用:

foreach ($arr as &$item) 
或者您可以直接修改
$arr

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

你试过了吗?array\u multisort不是按值排序吗?你试过了吗?array\u multisort不是按值排序吗?