PHP では、配列内に重複する値があるかどうかをチェックするのが基本的なタスクです。この記事では、PHP で配列に重複する値があるかどうかを確認する方法を検討し、いくつかの解決策を提供します。
1. PHP 組み込み関数を使用する
PHP には、PHP の配列の問題を簡単に解決できる便利な組み込み関数が多数あります。以下にその関数の 1 つを示します。
array_unique() — 配列から重複を削除する
重複値を完全に削除することが目的の場合、このメソッドは非常に単純です。一意の値のみを含む新しい配列を返します。並べ替えに問題がある場合は、sort() 関数を使用して並べ替えることができます。
例:
$array = array(1, 2, 2, 3, 4, 4, 4, 5); $array = array_unique($array); print_r($array);
出力:
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [7] => 5 )
上に示すように、前の配列を array_unique()
関数に渡しただけであり、同一です。値は重複排除されます。ただし、この方法は重複値を完全に削除する場合にのみ適しています。
2. PHP ループを使用する
配列内の重複する値をすべて検索する必要がある場合、おそらく最良の選択はループを使用することです。 PHP でループを使用して重複する値を見つける方法は次のとおりです:
$array = array(2, 5, 6, 2, 8, 5, 1); $result_array = array(); foreach ($array as $val) { $result_array[$val] = isset($result_array[$val]) ? ++$result_array[$val] : 1; } foreach ($result_array as $key => $val) { if ($val > 1) { echo "{$key} 重复了{$val}次 <br>"; } }
出力:
2 重复了2次 5 重复了2次
上記のコードでは、ループを使用して配列を反復処理し、各要素を使用します結果配列のキーとして。キーが引き継がれると、一度に 1 キーずつ増分されます。キーが何度も繰り返される場合は、別のループを渡して、この要素を出現回数とともに出力できます。
3. PHP count() 関数を使用する
場合によっては、配列内に重複値があるかどうかをすばやく確認する必要があり、重複値を削除する必要はありません。この場合、PHP の count() 関数を使用できます。
次はこのメソッドの例です:
$array = array(2, 5, 6, 2, 8, 5, 1); if (count($array) === count(array_unique($array))) { echo "没有重复值"; } else { echo "有重复值"; }
出力:
有重复值
上記のコードでは、array_unique() 関数を使用して重複を削除し、次に使用します。 count( ) 関数は、2 つの配列が同じサイズであるかどうかをチェックします。それらが同じで、配列内に重複する値がない場合、count($array) === count(array_unique($array))
は true と評価されます。
結論
配列内に重複する値があるかどうかを確認することは、PHP の一般的なタスクです。この記事では、PHP 配列に重複値があるかどうかを確認する 3 つの方法について説明しました。
さらに、PHP の組み込み SplObjectStorage クラスを使用するだけで、コレクション メソッドを使用して同様の効果を実現できます。最後に、SplObjectStorage クラスを使用して重複値をチェックするコードを参考までに示します。
$array = array(2, 5, 6, 2, 8, 5, 1); $splObj = new SplObjectStorage(); foreach ($array as $value) { $splObj->attach($value); } if (count($array) === $splObj->count()) { echo "没有重复值"; } else { echo "有重复值"; }
上記は、PHP を使用して、ファイルに重複値があるかどうかを確認する方法です。配列. お役に立てば幸いです。
以上がPHPで配列に重複があるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。