PHP では、配列内の同じデータ型の数を数えることが非常に一般的な要件です。たとえば、配列内の整数型の要素の数を数えたり、配列内の文字列型の要素の出現数を数えたりします。この記事では、同じデータ型の統計配列をPHPで実装する方法を紹介します。
方法 1: count 関数と is_numeric 関数を使用する
まず、PHP の組み込み count 関数を使用して配列の長さを取得し、次に is_numeric 関数を使用して要素が数値型。コードは次のとおりです。
function countNumerics($arr) { $count = 0; foreach ($arr as $el) { if (is_numeric($el)) { $count++; } } return $count; }
上記のコードは、foreach ループを使用して配列内の各要素を走査し、is_numeric 関数を使用して要素が数値型かどうかを判断します。その場合は、$count 変数の値を増やします。最後に、$count 変数を返すだけです。この関数は数値型の要素数のみをカウントできるため、他の型の要素数をカウントしたい場合は、is_numeric関数を他の型の判定関数に変更する必要があります。
方法 2: array_filter 関数と gettype 関数を使用する
もう 1 つの方法は、PHP で array_filter 関数と gettype 関数を使用することです。 array_filter 関数を使用して配列内の要素をフィルタリングすることができ、gettype 関数を使用して要素の型を取得できます。コードは次のとおりです。
function countType($arr, $type) { return count(array_filter($arr, function ($el) use ($type) { return gettype($el) == $type; })); }
上記のコードは、まず array_filter 関数を呼び出して $type 型のすべての要素をフィルターで除外し、次に count 関数を使用してフィルターされた配列の長さを取得します。
方法 3: array_reduce 関数と gettype 関数を使用する
もう 1 つの方法は、array_reduce 関数と gettype 関数を使用することです。 array_reduce 関数を使用すると、配列のすべての要素に対してコールバックを実行し、要素を 1 つの値に減らすことができます。コードは次のとおりです:
function countType($arr, $type) { return array_reduce($arr, function ($count, $el) use ($type) { return $count + (gettype($el) == $type); }, 0); }
上記のコードは、array_reduce 関数を使用して、配列内の各要素を走査します。要素の型が $type の場合、$count 変数に 1 を追加します。最後に、$count 変数を返すだけです。
概要
上記は、PHP で同じデータ型の配列を数える 3 つの方法です。これら 3 つの方法はそれぞれ異なり、どれを選択するかは、特定のニーズとコーディング スタイルによって異なります。 1 つのデータ型の要素の数だけをカウントする必要がある場合は、方法 1 が簡単な解決策です。複数のタイプを計算する必要がある場合、またはより明確なコード構造が必要な場合は、方法 2 または 3 を選択できます。
以上がPHPで配列内の同じデータ型を数える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。