ホームページ >バックエンド開発 >PHPの問題 >PHPで配列内の同じデータ型を数える方法

PHPで配列内の同じデータ型を数える方法

PHPz
PHPzオリジナル
2023-04-24 15:50:43479ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。