我正在尝试编写一个接受数组并删除重复项的函数,将结果作为逗号分隔的字符串返回。经过一些谷歌搜索,我发现它可以用一行(返回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);
?>
答案 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;