PHP 開発では、配列の処理は非常に一般的なタスクであり、大きくて乱雑な配列の場合は、配列内の同一の値の数をクエリする必要がある場合があります。この記事では、PHPを使用して配列内の同一の値の数をクエリする方法を詳しく紹介します。
1. array_count_values() 関数を使用する
PHP には、配列内の各要素の出現数を数えて連想配列を返すことができる、非常に便利な関数 array_count_values() が用意されています。 key は配列内の値を表し、value は配列内の値の出現数を表します。この原理に基づいて、配列内の同一の値の数を単純に数えることができます。
以下は、array_count_values() 関数を使用して配列内の同一の値の数を数えるコード例です:
$arr = array('apple', 'banana', 'orange', 'apple', 'apple', 'banana'); $countArr = array_count_values($arr); foreach($countArr as $key => $value) { echo $key . ':' . $value . '<br />'; }
出力結果は次のとおりです:
apple:3 banana:2 orange:1
2. foreach ループを使用して実装する
foreach ループを使用して配列を走査し、各要素を 1 つずつ取り出し、配列内に出現する回数をカウントすることもできます。コードは次のとおりです。
$arr = array('apple', 'banana', 'orange', 'apple', 'apple', 'banana'); $countArr = array(); foreach($arr as $val) { if(isset($countArr[$val])) { $countArr[$val]++; } else { $countArr[$val] = 1; } } foreach($countArr as $key => $value) { echo $key . ':' . $value . '<br />'; }
出力結果は上記と同じです。
3. array_unique() 関数と array_diff_assoc() 関数を使用して実現します
もう 1 つの方法は、array_unique() 関数と array_diff_assoc() 関数を組み合わせてこれを実現することです。 array_unique() 関数を繰り返し、array_diff_assoc() 関数を使用して元の配列と重複排除後の配列の差分を取得し、最後にその結果をキーとして空の配列に追加し、出現回数をカウントします。コードは次のとおりです。
$arr = array('apple', 'banana', 'orange', 'apple', 'apple', 'banana'); $uniqueArr = array_unique($arr); $diffArr = array_diff_assoc($arr, $uniqueArr); $countArr = array(); foreach($diffArr as $val) { if(isset($countArr[$val])) { $countArr[$val]++; } else { $countArr[$val] = 1; } } foreach($countArr as $key => $value) { echo $key . ':' . $value . '<br />'; }
出力結果は上記と同じです。
概要
この記事では、array_count_values() 関数の使用、foreach ループ実装の使用、array_unique の使用など、PHP 配列内の同一の値の数をクエリする 3 つの方法を紹介します。 () 関数と array_diff_assoc() 関数の実装。配列が小さい場合はどちらの方法でも機能しますが、配列が大きい場合は 3 番目の方法の方が高速です。実際の状況に応じて、配列内の同じ値をクエリするための適切な方法を選択できます。
以上がPHPで配列内の同一の値の数をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。