繁体   English   中英

php array_unique无法按预期工作

[英]php array_unique not working as expected

我正在尝试学习如何使用array_unique,所以我制作了一些示例代码,但我没有得到我的预期。

$array[0] = 1;
$array[1] = 5;
$array[2] = 2;
$array[3] = 6;
$array[4] = 3;
$array[5] = 3;
$array[6] = 7;
$uniques = array_unique($array, SORT_REGULAR);
for($i = 0; $i < count($uniques); $i++)
    echo $uniques[$i];

例如,这给了我''15263'但不是7的输出。经过一些测试后,我认为它停止了它找到第一个副本。 这是应该发生的吗?

$uniques输出的原因是

 Array
(
    [0] => 1
    [1] => 5
    [2] => 2
    [3] => 6
    [4] => 3
    [6] => 7
)

你的数组不包含键5 ,但在for循环中echo $uniques[$i]; 不保持echo $uniques[5]; 这就是缺少价值7的原因。

试试这个,

foreach($uniques as $unique){
   echo $unique;
}

代替

 for($i = 0; $i < count($uniques); $i++)

或者,您可以使用array_values($uniques)重新索引数组并使用,

  $uniques = array_values($uniques);
  for($i = 0; $i < count($uniques); $i++)
   echo $uniques[$i];

由于array_unique保留了密钥,因此无法使用for循环正确访问数组$uniques array_unique 使用foreach循环或将代码的第七行更改为:

$uniques = array_values(array_unique($array, SORT_REGULAR));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM