为什么会这样?
echo json_encode(array_unique([1,2,3,4,4]));
输出
[1,2,3,4]
和
echo json_encode(array_unique([1,2,3,3,4]));
输出
{"0":1,"1":2,"2":3,"4":4}
这导致了一些非常奇怪的错误,我根本无法理解这里发生了什么。我只是想从数组中删除重复项并将其作为数组返回。
答案 0 :(得分:2)
array_unique([1,2,3,4,4])
返回:
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
}
请注意,键是顺序的
array_unique([1,2,3,3,4]))
返回时:
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[4]=>
int(4)
}
请注意密钥
2
和密钥4
之间的跳转。
因此 - json_encode
将省略第一个数组中的keys
(并将其保留为array
个对象),而在第二个数组中,json_encode
将将array
视为object
并保留密钥。
您可以使用array_values
(获取值并忽略keys
)。