无法反转多维数组

时间:2018-07-06 08:13:57

标签: php

我有一个具有以下结构的数组:

[
    {
        "id": "2644688"
    },
    {
        "id": "2644689"
    }
]

我正在尝试使用array_reverse来撤消它:

$reversed = array_reverse($result, true);
return $response->withJson($reversed);

但是我得到了

{
 "0": {
       "id": "2644688"
 },
 "1": {
       "id": "2644689"
 }
}

顺序是相同的,函数array_reverse刚刚添加了数字索引,我做错了什么?

2 个答案:

答案 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);