php - array_unique 对于简单数组不一致

标签 php arrays duplicates

为什么会这样

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 key 4.

因此 - json_encode 将省略第一个数组中的 keys (并将其保留为 array 对象),而在第二个数组中array - json_encode 会将您的 array 视为 object 并保留 key 。

您可以使用array_values(获取值并忽略)。

关于php - array_unique 对于简单数组不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41420279/

相关文章:

php - Wsdl curl 错误 7 : couldn't connect to host

php - 根据数组中的另一个 id 仅对多数组中的第一项进行排序(PHP)

java - 如何通过 JNI 获取普通的一维数组而不是二维数组?

java - 如何在不使用集合的情况下从java中给定数组中删除重复元素

python - 删除列表中对象的重复项

php - Form::file:如何在验证错误后和/或更新时使用 Input::old 重新填充?

php - curl 超时和连接超时的最佳值

来自不同(包含)文件的 PHP 类私有(private)变量集

MySQL查询查找不存在且具有多个重复值的记录

sql-server - T-SQL:我可以在一个 View 中查询值,然后在第二个 View 中仅查询第一个 View 中不存在的值吗?