检查重复值的整数数组PHP
问题描述:
以下是我的代码:检查重复值的整数数组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
答
您可以使用array_unique
轻松执行此检查。只需比较原始数组的长度与数组的唯一版本的长度。
function has_dupes($array){
return count($array) != count(array_unique($array));
}
另外,您还想使用array()
声明一个数组。
答
你错过了array
关键字
$array1 = array('23','3','55','67');
^// here was the mistake
答
$array1= array(23,3,55,67);
线程的整数为整数。
答
通过将数字放在引号中,您将它们视为字符串。此外,数组的语法是错误的...
$array1 = array(1,2,25,26);
答
这是错误
$array1=array('23','3','55','67');
答
你眼前的问题是,你使用了错误的数组语法。正确要么是
$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
}
答
function has_duplicates($myArray) {
return (max(array_count_values($myArray)) > 1);
}
+1
+1获得唯一性的不同方法。 – 2013-02-08 12:35:47
答
为什么你不这样做?
$array1 = array_unique($array1)
我误解了这个问题吗?
使用类似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
回声回声回声... – Basic 2013-02-08 12:31:18