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_unique($array1)

質問を誤解しましたか?

于 2013-02-08T13:14:10.030 に答える
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 に答える