我有一个数组,我想从中取消第一项,但是当我这样做时,我通过jQuery发送带有JSON的信息,结果被读作对象。
数组如下所示:
[“one”,“two”,“three”,“four”]
...然后我解开了:
unset(myArray[0]);
... console.log中的JSON读取:
OBJECT 1:“一” 2:“两个”
是什么让它如此,我该如何预防呢?从我所看到的,在PHP中,剩下的数组就像一个数组,我可以使用数组函数,例如array_search,array_intersect等。
答案 0 :(得分:8)
在JSON中,数组总是从索引0开始。因此,如果在PHP中删除元素0,则数组从1开始。但是这不能用JSON中的数组表示法表示。所以它被表示为一个对象,它支持键/值对。
要使JSON将数据表示为数组,必须确保数组从索引0开始并且没有间隙。
要实现这一目标,请不要使用取消设置,而应使用array_splice:
array_splice(myArray, 0, 1);
这样你的数组就会移动,确保第一个元素位于索引0。
如果它始终是您要删除的第一个元素,那么您可以使用较短的array_shift:
array_shift(myArray);
答案 1 :(得分:7)
我不确定为什么它转换为0
而不是object
。这肯定是因为没有索引array
(确实)。
为防止这种情况,请使用重建数组索引的0
:
array_values