PHP排序子数组值?
嗨,我找到了关于排序多维数组的其他线程,但这不是同一个问题PHP排序子数组值?,php,arrays,sorting,Php,Arrays,Sorting,嗨,我找到了关于排序多维数组的其他线程,但这不是同一个问题 <?php $arr[22][] = 45; $arr[22][] = 44; $arr[22][] = 99; $arr[23][] = 95; $arr[23][] = 55; $arr[23][] = 1; echo "<pre>"; print_r($arr); echo "</pre>"; 我试着用 foreach($arr as &$v) { sort($v); }
<?php
$arr[22][] = 45;
$arr[22][] = 44;
$arr[22][] = 99;
$arr[23][] = 95;
$arr[23][] = 55;
$arr[23][] = 1;
echo "<pre>";
print_r($arr);
echo "</pre>";
我试着用
foreach($arr as &$v) {
sort($v);
}
但无论如何,这是不正确的
我该怎么办?很简单:
// if arr is a multidimensional array
foreach($arr as &$v)
sort($v[0]); // sort the subarray
unset($v);
和$v
允许通过引用对值进行迭代,允许在foreach循环内进行修改(从而对每个子数组进行排序)
如果您计划稍后在另一个foreach中使用$v
任何isset($v[0])可能会感染下一个循环,wierd(/p>
foreach($arr as&$v){sort($v);}
非常感谢@Calimeroarray_walk($arr,'sort')
也应该这样做。对,甚至更好。无论如何,把它贴出来。这看起来和一年前作为评论发布的答案一模一样。此外,如果答案如您所述存在重大问题,则它不会给出适当的答案。
foreach($arr as &$v) {
sort($v);
}
// if arr is a multidimensional array
foreach($arr as &$v)
sort($v[0]); // sort the subarray
unset($v);