У меня есть двумерный массив, который выглядит следующим образом:
array(2) {
[45]=>
array(5) {
[0]=>
int(2)
[1]=>
int(5)
[2]=>
int(1)
[3]=>
int(3)
[4]=>
int(4)
}
[42]=>
array(5) {
[0]=>
int(5)
[1]=>
int(4)
[2]=>
int(3)
[3]=>
int(2)
[4]=>
int(1)
}
}
Значения ключей внешнего массива являются числовыми, но не начинаются с 0 и не являются последовательными.Я хочу отсортировать внешний массив по возрастанию ключей, а внутренние массивы - по возрастанию значений, поэтому я пытаюсь сделать следующее:
ksort($arr);
foreach ($arr as $a) {
sort($a);
}
var_dump($arr);
, который сортирует внешний массив должным образом, но, кажется, не касается внутреннеговообще массивов:
array(2) {
[42]=>
array(5) {
[0]=>
int(5)
[1]=>
int(4)
[2]=>
int(3)
[3]=>
int(2)
[4]=>
int(1)
}
[45]=>
array(5) {
[0]=>
int(2)
[1]=>
int(5)
[2]=>
int(1)
[3]=>
int(3)
[4]=>
int(4)
}
}
Почему это так и как я могу добиться того, чего хочу?Я думаю, что это связано с вложенностью массива, потому что следующее работает, как и ожидалось:
$test = array(5,2,3,1,4);
sort($test);
var_dump($test);
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
}