PHP排序子阵列值?

时间:2017-09-14 13:17:46

标签: php arrays sorting

您好我找到了关于排序多维数组的其他主题,但它不是同一个问题

child != null

我想对子数组中的值进行排序,而不是子数组之间的值。

预期结果是

<?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>";

我尝试

[22] => Array [0 ] => 44 [1] => 45 [2] => 99

[23] => Array [0 ] => 1 [1] => 55 [2] => 95

但无论如何它都不正确。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

足够简单:

foreach($arr as &$v) {
    sort($v);
}

&$v允许通过引用迭代值,允许在foreach循环内进行修改(从而对每个子数组进行排序)。

答案 1 :(得分:0)

// if arr is a multidimensional array
foreach($arr as &$v)
    sort($v[0]);  // sort the subarray
unset($v);

如果您打算稍后在另一个foreach中使用$ v    任何!isset($ v [0])可能会感染下一个循环,更奇怪