PHP:如何从数组中删除重复项

时间:2013-04-17 16:47:38

标签: php

我正在尝试编写一个接受数组并删除重复项的函数,将结果作为逗号分隔的字符串返回。经过一些谷歌搜索,我发现它可以用一行(返回implode(",",unique_array($ arr));)。但是,这并不能帮助我弄清楚原始代码是错误的。那么也许您可以告诉我原始代码中的逻辑错误导致它返回所有值,包括重复项?

谢谢! : - )

<?php

function GetUniqueValues($arr) {
  $x=0;
  foreach($arr as $i) {
    if(!in_array($i, $arr2)) {
      $arr2[x]=$i;
      $x++;
    }
  }

  $str = implode(",",$arr);

  return $str;
}


$arr = array(1,2,2,3,2,4,4,5,4,7,6,8,9);

echo GetUniqueValues($arr);

?>

2 个答案:

答案 0 :(得分:0)

$arr2[x]=$i;应为$arr2[$x]=$i;(缺少$

启用错误报告并将其设置为报告所有错误和通知。 PHP会告诉你这些错误。

ini_set('display_errors', 1); 
error_reporting(E_ALL);

答案 1 :(得分:0)

  $arr2[x]=$i;

这是错误的。你错过了一个$ - 符号。应该是:

  $arr2[$x]=$i;

顺便说一下。你也可以这样做:

  $arr2[]=$i;