在PHP中检查整数数组中的重复值

时间:2013-02-08 12:29:06

标签: php arrays integer

以下是我的代码:

$array1=('23','3','55','67');
function has_dupes($array1){
 $dupe_array = array();
 foreach($array1 as $val){
  if(++$dupe_array[$val] > 1){
   return true;
  }
 }
 return false;
}

我是PHP的新手,想要编写一个函数来检查数组是否有重复的整数。我的代码如下:

它出错:Parse error: syntax error, unexpected ',' on line 1

8 个答案:

答案 0 :(得分:3)

您错过了array关键字

$array1 = array('23','3','55','67');
         ^ // here was the mistake

答案 1 :(得分:3)

function has_duplicates($myArray) {
    return (max(array_count_values($myArray)) > 1);
}

答案 2 :(得分:2)

您当前的问题是您使用了错误的数组语法。正确的可能是

$array1 = ['23','3','55','67']; // only possible in PHP >= 5.4

$array1 = array('23','3','55','67'); // all versions of PHP

关于欺骗检测功能,您不需要,因为您可以使用现成的array_unique

if (count(array_unique($array)) != count($array)) {
    // the array has dupes
}

答案 3 :(得分:1)

$array1= array(23,3,55,67);

将整数作为整数。

答案 4 :(得分:1)

通过将数字放在引号中,您将它们视为字符串。此外,数组语法错误...

$array1 = array(1,2,25,26);

答案 5 :(得分:1)

这是错误

$array1=array('23','3','55','67');

答案 6 :(得分:1)

您可以使用array_unique轻松执行此检查。只需将原始数组的长度与数组唯一版本的长度进行比较。

function has_dupes($array){
  return count($array) != count(array_unique($array));
}

您还想使用array()声明一个数组。

答案 7 :(得分:1)

你为什么不这样做?

$array1 = array_unique($array1)

我是否误解了这个问题?