ホームページ  >  記事  >  バックエンド開発  >  PHP配列からnull値を削除する方法

PHP配列からnull値を削除する方法

PHPz
PHPzオリジナル
2023-04-20 09:10:39897ブラウズ

PHP プログラミングでは、データ クリーニングやデータ フィルタリングなどのシナリオで、配列内の null 値を削除する必要がある状況によく遭遇します。 PHP でこれを実現するにはいくつかの方法があり、以下でそれらを長所と短所とともに詳しく説明します。

方法 1: array_filter() 関数を使用する

array_filter() 関数は、カスタム関数の条件を満たさない要素がフィルターで除外された新しい配列を返すことができます。要素が null かどうかを判断するカスタム関数を構築できます。

サンプル コードは次のとおりです。

$array = array("foo", "", "bar", null, "baz");
$new_array = array_filter($array, function($item) {
    return !empty($item);
});

この例では、$array 配列には、# までの空の文字列、NULL 値、および空ではない要素が含まれています。 ##array_filter( ) 関数を使用すると、null 値を含まない新しい配列、つまり $new_array が得られます。

array_filter() 関数はデフォルトで次の値を削除することに注意してください:

    "" (空の文字列)
  • 0 (整数 0)
  • 0.0 (浮動小数点 0)
  • "0" (文字列 "0")
  • false (ブール値 false)
  • null
他の値を削除する必要がある場合は、フィルタリング用のカスタム関数を介して 2 番目のパラメータを渡すことができます。

利点:

array_filter() この関数は使いやすく、フィルター条件をカスタマイズできます。

欠点: 他の方法と比較すると、この方法は、特に中型および大規模な配列の場合、パフォーマンスが劣ります。

方法 2: foreach ループを使用して null 値を削除する

この方法はより直接的です。foreach ループを通じて配列を走査し、PHP の弱い型機能 (null 値は自動的に false に変換されます) を決定して null 値を削除します。

サンプル コードは次のとおりです:

$array = array("foo", "", "bar", null, "baz");
foreach($array as $key => $value) {
    if(!$value) {
        unset($array[$key]);
    }
}
この例では、

$array 配列を走査します。要素の値が false の場合、つまり、 null 値と判定された場合は、unset() 関数を使用して要素を削除します。

利点:

array_filter() 関数と比較して、このメソッドは大規模な配列のパフォーマンスが優れています。

欠点: 条件判定を手動で追加する必要があり、コードが十分に簡潔ではありません。

方法 3: array_diff() 関数を使用する

array_diff() この関数は、配列値の差分セットを計算するために使用されます。これを使用して null 値を削除できます。

サンプル コードは次のとおりです。

$array = array("foo", "", "bar", null, "baz");
$new_array = array_diff($array, array("", null));
この例では、

array_diff() 関数を使用して $array 配列を計算し、空の文字列を含む配列と null 値の配列の差分。結果として新しい配列 $new_array が生成されます。このメソッドでは複数の値を一度にフィルターできることがわかります。

このメソッドはハードコードされた null 値のみをフィルターでき、フィルター条件をカスタマイズできないことに注意してください。

利点: コードはシンプルで、複数の値を一度にフィルタリングできます。

欠点: フィルター条件をカスタマイズできません。

要約すると、大規模アレイの場合は方法 2 を使用することをお勧めしますが、小規模アレイの場合は方法 1 または方法 3 を選択できます。

以上がPHP配列からnull値を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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