PHP配列のnull値をクリアする方法

PHPz
リリース: 2023-04-26 13:45:48
オリジナル
854 人が閲覧しました

PHP 開発では配列データを処理する必要がよくあり、null 値をクリアするのは一般的なタスクです。 null 値は、空の文字列、null 値、または未定義の値を参照できます。この記事では、PHP 関数を使用して配列から null 値をクリアする方法を説明します。

1. PHP 関数 array_filter()

PHP には、配列をフィルタリングして新しいフィルタリングされた配列を返すことができる array_filter() 関数が用意されています。コールバック関数を渡して、どの値を保持するかを決定できます。

array_filter() 関数を使用して配列内の空の値をクリアする場合は、次の 2 つの点に注意する必要があります。

  1. コールバック関数を渡します。フィルタリング条件が異なるため、現在の配列要素がnullかどうかを判定するコールバック関数を渡す必要があります。コールバック関数は、配列の各要素を判定して保持するかどうかを決定するようにカスタマイズできます。以下は、カスタム コールバック関数を使用して配列内の空の値をクリアするサンプル コードです:
function removeEmptyValues($value) {
    return !empty($value) || $value === 0;
}

$array = array("", "test", null, " ", 0, "0");
$result = array_filter($array, "removeEmptyValues");

print_r($result);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [1] => test
    [3] =>  
    [4] => 0
    [5] => 0
)
ログイン後にコピー

removeEmptyValues() 関数はここにあります配列要素が空の文字列、null 値、0 であるかどうかを判断して、要素を保持するかどうかを決定します。 0 と空の文字列を厳密に比較するには、== の代わりに === を使用する必要があることに注意してください。

  1. 配列キー名を渡す: デフォルトでは、array_filter() 関数を使用して配列内の null 値をクリアすると、関数は新しい配列のインデックスを再作成します。つまり、元の配列内のキー名が削除される可能性があります。元の配列のキー名を保持したい場合は、次のように配列キー名をコールバック関数に渡す必要があります:
function removeEmptyValues($key, $value) {
    return !empty($value) || $value === 0;
}

$array = array("name" => "", "age" => null, "sex" => "male");
$result = array_filter($array, "removeEmptyValues", ARRAY_FILTER_USE_BOTH);

print_r($result);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [sex] => male
)
ログイン後にコピー

コールバック関数には、現在の配列要素のキー名を表す $key と配列要素の値を表す $value の 2 つのパラメータが渡されます。この場合、3 番目のパラメータ ARRAY_FILTER_USE_BOTH を追加する必要があります。これは、コールバック関数を使用してキー名とキー値を渡すことを意味します。

2. foreach() を使用する

array_filter() 関数に加えて、foreach() ループを使用して配列内の null 値をクリアすることもできます。このメソッドは、配列要素を 1 つずつ循環して null 値をクリアします。次のコードは、foreach() を使用して配列内の null 値をクリアする方法を示しています。

$array = array("", "test", null, " ", 0, "0");
$result = array();

foreach ($array as $value) {
    if (!empty($value) || $value === 0) {
        $result[] = $value;
    }
}
print_r($result);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
    [0] => test
    [1] =>  
    [2] => 0
    [3] => 0
)
ログイン後にコピー

このメソッドは配列要素をループし、次のメソッドを使用します。 if ステートメントで要素が null 値であるかどうかを判断し、null 値でない場合は新しい配列に追加されます。

3. array_map() 関数を使用する

PHP には別の関数 array_map() も用意されており、指定されたコールバック関数を配列内の各要素に適用して、新しい配列を返すことができます。コールバック関数を渡すことで、配列から null 値をクリアできます。以下は、array_map() 関数を使用して配列の空の値をクリアするサンプル コードです。

function removeEmptyValues($value) {
    return !empty($value) || $value === 0;
}

$array = array("", "test", null, " ", 0, "0");
$result = array_map("removeEmptyValues", $array);

print_r($result);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
    [0] => 
    [1] => test
    [2] => 
    [3] =>  
    [4] => 
    [5] => 0
)
ログイン後にコピー

array_map() 関数を使用する場合の注意点配列の空の値をクリアするには、元の配列のインデックスキー名は保持されないため、出力結果には要素の値のみが保持されます。

概要

PHP 開発では、配列内の null 値をクリアする必要があることがよくあります。この記事では、array_filter()、foreach() ループ、array_map() 関数の使用という 3 つの一般的な方法を紹介します。このうち、array_filter() 関数は 3 つのメソッドの中で最も広く使用されており、コールバック関数はさまざまなニーズに合わせてカスタマイズできます。元の配列のキー名を保持する必要がある場合は、array_filter() の 3 番目のパラメーターまたはカスタム コールバック関数を使用して、キー名とキー値を 2 つのパラメーターとして渡すことができます。元の配列のキー名とインデックスを保持する必要がある場合は、foreach() を使用して配列をループし、要素が null かどうかを 1 つずつ確認できます。 array_map() 関数を使用して null 値をクリアする場合、出力配列のインデックス キー名がリセットされる可能性があるため、元の配列のキー名を保持する必要がある場合は、個別に処理する必要があることに注意してください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート