我有一个具有以下结构的数组:
[
{
"id": "2644688"
},
{
"id": "2644689"
}
]
我正在尝试使用array_reverse
来撤消它:
$reversed = array_reverse($result, true);
return $response->withJson($reversed);
但是我得到了
{
"0": {
"id": "2644688"
},
"1": {
"id": "2644689"
}
}
顺序是相同的,函数array_reverse
刚刚添加了数字索引,我做错了什么?
答案 0 :(得分:1)
您不应在true
的第二个参数中传递array_reverse
。
尝试将代码替换为:
$reversed = array_reverse($result, false);
或者只是:
$reversed = array_reverse($result);
第二个参数是保留原始数组键。问题在于JavaScript将根据键更改其顺序,因此json的输出将是:
{"1":{"id":"2644689"},"0":{"id":"2644688"}}
然后JavaScript会将顺序更改为0,1。
答案 1 :(得分:1)
根据array_reverse文档。第二个参数如果设置为TRUE,则保留数字键。非数字键不受此设置的影响,并将始终保留。
因此,请尝试删除true
作为第二个参数。
$reversed = array_reverse($result);
return $response->withJson($reversed);