Php 无法反转多维数组
我有一个结构如下的数组:Php 无法反转多维数组,php,Php,我有一个结构如下的数组: [ { "id": "2644688" }, { "id": "2644689" } ] 我正在尝试使用array\u reverse: $reversed = array_reverse($result, true); return $response->withJson($reversed); 但我得到: { "0": { "id": "2644688" }, "1": {
[
{
"id": "2644688"
},
{
"id": "2644689"
}
]
我正在尝试使用array\u reverse
:
$reversed = array_reverse($result, true);
return $response->withJson($reversed);
但我得到:
{
"0": {
"id": "2644688"
},
"1": {
"id": "2644689"
}
}
顺序是一样的,函数
array\u reverse
只是添加了数字索引,我做错了什么?在array\u reverse
的第二个参数中不应该传递true
尝试将代码替换为:
$reversed = array_reverse($result, false);
或者只是:
$reversed = array_reverse($result);
第二个参数是保留原始数组键。问题是JavaScript将根据键更改其顺序,因此json的输出将是:
{"1":{"id":"2644689"},"0":{"id":"2644688"}}
JavaScript会将顺序更改为0,1。您不应该在
array\u reverse
的第二个参数中传递true
尝试将代码替换为:
$reversed = array_reverse($result, false);
或者只是:
$reversed = array_reverse($result);
第二个参数是保留原始数组键。问题是JavaScript将根据键更改其顺序,因此json的输出将是:
{"1":{"id":"2644689"},"0":{"id":"2644688"}}
而JavaScript将根据文档将顺序更改为0,1.。第二个参数,如果设置为TRUE,则保留数字键。非数字键不受此设置的影响,并且将始终保留
因此,尝试删除true
作为第二个参数
$reversed = array_reverse($result);
return $response->withJson($reversed);
根据文件。第二个参数,如果设置为TRUE,则保留数字键。非数字键不受此设置的影响,并且将始终保留
因此,尝试删除true
作为第二个参数
$reversed = array_reverse($result);
return $response->withJson($reversed);
这是将数组编码为json的方式。@u\u mulder所以我应该首先反序列化它?json\u encode不会保留顺序我已经尝试了相同的方法,但结果与您希望的一样,而不是像您在这里显示的那样。@LovePreething您得到了恢复吗?这是将数组编码为json的方式。@u mulder所以我应该首先反序列化它?json\u encode不会保留顺序我已经尝试过了相同,但结果是你想要的,而不是你在这里显示的那样。@lovepreething你得到回复了吗?