ホームページ >バックエンド開発 >PHPの問題 >phpは配列からnull値を削除します

phpは配列からnull値を削除します

PHPz
PHPzオリジナル
2023-05-19 11:18:372810ブラウズ

PHP 開発プロセスでは、配列を処理する必要がある状況によく遭遇します。配列を処理するとき、非常に一般的なニーズは、配列内の null 値を削除することです。では、PHP で配列内の null 値を削除するにはどうすればよいでしょうか?この記事では、配列のnull値を削除する3つの方法を紹介します。

方法 1: ループを使用して配列を走査する

配列のループは、配列を処理する最も一般的な方法です。 foreach ループを使用して配列を走査し、条件ステートメントを使用して配列内の各要素が null 値であるかどうかを判断できます。null 値の場合は、unset 関数を使用して削除します。具体的な手順は次のとおりです。

// 原始数组
$arr = array('foo', '', 'bar', ' ', null, 'baz');

// 遍历数组并删除空值
foreach ($arr as $key => $value) {
    if ($value === '' || $value === ' ' || $value === null) {
        unset($arr[$key]);
    }
}

// 输出处理后的数组
print_r($arr);

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [0] => foo
    [2] => bar
    [5] => baz
)

方法 2: array_filter 関数を使用して配列をフィルター処理します

PHPにはarray_filterという関数が用意されており、配列内の値をフィルタリングするために使用できます。この関数は配列内の各要素をコールバック関数に渡して判定し、要素が条件を満たしていれば true を返し、条件を満たしていない場合は false を返します。最後に、この関数は、条件を満たす要素のみを含む新しい配列を返します。

無名関数をコールバック関数として使用し、配列をパラメータとして array_filter 関数に渡すことができます。具体的な手順は次のとおりです。

// 原始数组
$arr = array('foo', '', 'bar', ' ', null, 'baz');

// 过滤数组中的空值
$new_arr = array_filter($arr, function($value) {
    return ($value !== '' && $value !== ' ' && $value !== null);
});

// 输出处理后的数组
print_r($new_arr);

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [0] => foo
    [2] => bar
    [5] => baz
)

方法 3: array_diff 関数を使用して差分セットを見つける

PHP には array_diff という関数が用意されており、2 つの配列間の差異を見つけるために使用できます。元の配列と null 値のみを含む配列の差分を取得でき、結果は null 値を削除した後の配列になります。具体的な手順は次のとおりです。

// 原始数组
$arr = array('foo', '', 'bar', ' ', null, 'baz');

// 以空值作为差集的基准求差集
$new_arr = array_diff($arr, array('', ' ', null));

// 输出处理后的数组
print_r($new_arr);

上記のコードを実行すると、出力結果は次のようになります。

Array
(
    [0] => foo
    [2] => bar
    [5] => baz
)

要約すると、null 値を削除する 3 つの方法を紹介しました。 PHP 配列は次のとおりです。 ループ トラバーサル配列を使用し、array_filter 関数を使用して配列をフィルタリングし、array_diff 関数を使用して違いを見つけます。実際の開発では、特定のニーズに応じてさまざまな方法を選択できます。

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

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