有一个数组$data = array()
。数据被写入其中array_push($data, data)
。
因为 data
可以重复,使用 unique 创建一个新数组data
。
$uniq_data = array_unique($data);
之后我想输出这个数组。我这样做:
for($i=0; $i<count($uniq_data); $i++){
}
仅显示数组的前 2 个元素。通过显示数组后,print_r($uniq_data);
我看到元素的键不按顺序排列(0,1,2,3 ...),显然键是从前一个数组中复制的(0,4,28,392 ... )。
我不明白它是如何工作的。理论上它应该显示所有元素,但它只显示数组元素键小于的那些元素count($uniq_data)
。这是为什么?以及如何显示所有元素?
array_unique
从头开始对键进行排序后最简单的方法:array_values()
返回一个包含数组所有元素的数组array
。它还使用数字索引重新索引返回的数组。https://www.php.net/manual/en/function.array-values.php该函数
array_unique()
删除重复元素但不重置它们的索引。因此,如果数组中有 4 个元素,但它们的索引相等,例如:0、4、28、392,则for
只有第一个元素将显示在循环中。要显示所有元素,请使用数组循环
foreach
:文档中的详细信息