ホームページ バックエンド開発 PHPの問題 PHPで空ではない配列の長さを取得する方法

PHPで空ではない配列の長さを取得する方法

Apr 26, 2023 am 09:06 AM

PHP では、配列は非常に一般的に使用されるデータ構造であり、多くのプログラミング シナリオで配列を使用する必要がよくあります。したがって、配列を処理するときは、配列が空かどうか、および配列の長さを取得する方法を考慮する必要があることがよくあります。

PHP には、配列が空かどうかを判断する関数 empty()、配列要素が存在するかどうかを判断する関数 isset()、配列要素を取得する関数 count() など、配列を処理するための関数が多数用意されています。配列の長さなど。この記事では、空ではない配列の長さを取得する方法に焦点を当てます。

count() 関数を使用して配列の長さを取得すると、配列が空の場合は 0 が返されます。しかし、シナリオによっては、空ではない配列の長さを取得する必要がある場合、どうすればよいでしょうか?

一般的な方法は、ループを使用して配列を走査し、空ではない要素の数をカウントすることです。具体的な実装は次のとおりです。

function countNotNull($arr){
    if(!is_array($arr)) return 0;
    $count = 0;
    foreach($arr as $item){
        if(!empty($item)){
            $count++;
        }
    }
    return $count;
}

$arr = array(1, null, 3, "", 5, array());
echo countNotNull($arr); // output: 3
ログイン後にコピー

上記のコードは、まず配列が空かどうか、および不正なパラメーターを渡すことによって発生するエラーを防ぐための配列型であるかどうかを判断します。次に、各要素を走査して、空ではない要素の数を数えます。最後にこの値を返します。

この方法は比較的単純ですが、配列要素が多い場合は効率が低くなります。また、本機能を複数回使用する場合、作業が重複して発生する可能性があります。

より効率的な解決策は、array_filter() 関数を使用して空の要素をフィルターで除外し、次に count() 関数を使用して配列の長さを取得することです。具体的な実装は次のとおりです。

function countNotNull2($arr){
    if(!is_array($arr)) return 0;
    $newArr = array_filter($arr);
    return count($newArr);
}

$arr = array(1, null, 3, "", 5, array());
echo countNotNull2($arr); // output: 3
ログイン後にコピー

上記のコードは、最初にパラメーターの正当性を判断し、次に array_filter() 関数を使用して空の要素をフィルターで除外し、新しい配列を返します。次に、count() 関数を使用して、新しい配列の長さ (空ではない配列の長さ) を取得します。

array_filter() 関数を使用すると、空の文字列をフィルターで除外するのではなく、空の要素 (0、""、null、false など) がフィルターで除外されることに注意してください。

つまり、PHP では、空でない配列の長さを取得する方法は数多くありますが、上記は一般的なものにすぎません。読者は実際のニーズに応じて適切な方法を選択できます。

以上がPHPで空ではない配列の長さを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPアレイの重複排除のためのベストプラクティスは何ですか PHPアレイの重複排除のためのベストプラクティスは何ですか Mar 03, 2025 pm 04:41 PM

PHPアレイの重複排除のためのベストプラクティスは何ですか

PHPアレイの重複排除は、キー名の一意性を利用できますか? PHPアレイの重複排除は、キー名の一意性を利用できますか? Mar 03, 2025 pm 04:51 PM

PHPアレイの重複排除は、キー名の一意性を利用できますか?

最新のPHPコーディング基準とベストプラクティスは何ですか? 最新のPHPコーディング基準とベストプラクティスは何ですか? Mar 10, 2025 pm 06:16 PM

最新のPHPコーディング基準とベストプラクティスは何ですか?

PHPアレイの重複排除のための最適化手法は何ですか PHPアレイの重複排除のための最適化手法は何ですか Mar 03, 2025 pm 04:50 PM

PHPアレイの重複排除のための最適化手法は何ですか

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? Mar 03, 2025 pm 04:47 PM

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか?

PHP拡張機能とPECLを使用するにはどうすればよいですか? PHP拡張機能とPECLを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:12 PM

PHP拡張機能とPECLを使用するにはどうすればよいですか?

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は? PHPにメッセージキュー(rabbitmq、redis)を実装する方法は? Mar 10, 2025 pm 06:15 PM

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は?

リフレクションを使用してPHPコードを分析および操作する方法は? リフレクションを使用してPHPコードを分析および操作する方法は? Mar 10, 2025 pm 06:12 PM

リフレクションを使用してPHPコードを分析および操作する方法は?

See all articles