2013-02-08 97 views
0

以下是我的代码:检查重复值的整数数组PHP

$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

+0

使用类似array_count_values()(http://www.php.net/manual/en/function.array-count-values.php)或array_unique()(http://www.php.net/manual例如return(max(array_count_values($ myArray))> 1); – 2013-02-08 12:30:06

+0

回声回声回声... – Basic 2013-02-08 12:31:18

回答

1

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

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

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

3

你错过了array关键字

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

线程的整数为整数。

1

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

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

这是错误

$array1=array('23','3','55','67'); 
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 
} 
+0

'$ array1 = ['23','3','55','67'];'确实对php有效<5.4 – j0k 2013-02-08 12:32:41

+0

@ j0k:好吧,现在一年。无论如何,我添加了一条评论来澄清。 – Jon 2013-02-08 12:34:18

+0

我知道,可悲的是PHP 5.4并没有真正用于比较PHP 5.3。 – j0k 2013-02-08 12:36:02

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

+1获得唯一性的不同方法。 – 2013-02-08 12:35:47

1

为什么你不这样做?

$array1 = array_unique($array1) 

我误解了这个问题吗?