arsort工作正常,但没有?

时间:2013-01-21 23:27:02

标签: php arrays sorting

致电die(var_dump($dias));返回:

array (size=2)
  1 => 
    array (size=5)
      0 => float 0.079
      1 => float 0.103
      2 => float 0.128
      3 => float 0.093
      4 => float 0.084
  2 => 
    array (size=5)
      0 => float 0.082
      1 => float 0.083
      2 => float 0.094
      3 => float 0.071
      4 => float 0.094

有或没有foreach($dias as $k => $v) arsort($dias[$k]);它返回相同的东西。

如何在不丢失密钥引用的情况下重新排序数组?

1 个答案:

答案 0 :(得分:4)

要修改foreach内部的php数组的值,您必须在$v之前加上&符号foreach($dias as $k => &$v)。然后使用artsort($v)对子数组进行排序;否则你要修改foreach执行后不存在的值的副本。有关详细信息,请参阅the foreach manual