0

以下是我的代码:

$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

4

8 回答 8

3

你错过了array关键字

$array1 = array('23','3','55','67');
         ^ // here was the mistake
于 2013-02-08T12:30:10.297 回答
3
function has_duplicates($myArray) {
    return (max(array_count_values($myArray)) > 1);
}
于 2013-02-08T12:34:24.893 回答
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
}
于 2013-02-08T12:31:42.587 回答
1
$array1= array(23,3,55,67);

线程整数作为整数。

于 2013-02-08T12:30:15.137 回答
1

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

$array1 = array(1,2,25,26);
于 2013-02-08T12:30:40.103 回答
1

这是错误

$array1=array('23','3','55','67');
于 2013-02-08T12:30:53.130 回答
1

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

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

您还想使用array().

于 2013-02-08T12:31:59.713 回答
1

你为什么不这样做呢?

$array1 = array_unique($array1)

我误解了这个问题吗?

于 2013-02-08T13:14:10.030 回答