我想按键对多数组进行排序,这些来自前端的数据会以某种方式随机排序。
所以我必须对数据进行排序,起初我很自然地使用组合'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