为什么会这样
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}
这给我带来了一些非常奇怪的错误,我根本无法理解这里发生了什么。我只想从数组中删除重复项并将其作为数组返回。
最佳答案
array_unique([1,2,3,4,4])
返回:
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
}
Note that the keys are sequential
当 array_unique([1,2,3,3,4]))
返回时:
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[4]=>
int(4)
}
Note the jump between the key
2
and the key4
.
因此 - json_encode
将省略第一个数组中的 keys
(并将其保留为 array
对象),而在第二个数组中array - json_encode
会将您的 array
视为 object
并保留 key 。
您可以使用array_values
(获取值并忽略键
)。
关于php - array_unique 对于简单数组不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41420279/