Я хочу отсортировать мульти-массив по ключу, эти данные, поступающие из внешнего интерфейса, будут каким-то образом путаться в случайном порядке.
Поэтому я должен отсортировать данные, сначала я использую комбайн ‘array_walk ($ array, «ksort»)’. Прекрасно работают с простыми данными массива, при работе с несколькими массивами это работает неправильно.
Наконец, я решаю это с помощью цикла ksort.
Но я понятия не имею, почему почти одинаковые коды дают другой результат.
Кто-нибудь поможет? Спасибо
$arr = [
['identifier_num' => 1, 'form_id' => 3, 'is_view' => 1, 'in_time' => '3', 'model_num' => 44],
['form_id' => 1, 'identifier_num' => 3, 'in_time' => 1, 'is_view' => '3', 'model_num' => 44],
['b' => 1, 'a' => '2'],
];
$a2 = $arr;
array_walk($arr, 'diydiy');
var_dump($arr);
array_walk($a2, 'ksort');
var_dump($a2);
function diydiy(&$a)
{
ksort($a);
}
Результат:
array (size=3)
0 =>
array (size=5)
'form_id' => int 3
'identifier_num' => int 1
'in_time' => string '3' (length=1)
'is_view' => int 1
'model_num' => int 44
1 =>
array (size=5)
'form_id' => int 1
'identifier_num' => int 3
'in_time' => int 1
'is_view' => string '3' (length=1)
'model_num' => int 44
2 =>
array (size=2)
'a' => string '2' (length=1)
'b' => int 1
D:\WWW\t.php:13:
array (size=3)
0 =>
array (size=5)
'form_id' => int 3
'identifier_num' => int 1
'in_time' => string '3' (length=1)
'is_view' => int 1
'model_num' => int 44
1 =>
array (size=5)
'model_num' => int 44
'is_view' => string '3' (length=1)
'in_time' => int 1
'identifier_num' => int 3
'form_id' => int 1
2 =>
array (size=2)
'a' => string '2' (length=1)
'b' => int 1
Задача ещё не решена.
Других решений пока нет …