ホームページ  >  記事  >  バックエンド開発  >  PHPで2次元配列内のNULL値ペアを削除する方法

PHPで2次元配列内のNULL値ペアを削除する方法

PHPz
PHPzオリジナル
2023-04-23 17:48:54650ブラウズ

PHP を使用して開発をしていると、配列を操作する必要が生じることがよくあります。配列は一般的なデータ構造であり、PHP でも広く使用されています。 2 次元配列は、要素も配列である特別なタイプの配列です。実際の開発では、2 次元配列内の null 値のペアを削除する必要がある場合があります。これを実現するには、いくつかの PHP 配列関数を使用する必要があります。

1. 2 次元配列とは

配列の要素も配列である場合、その配列は 2 次元配列です。 PHP では、2 次元配列は次の方法で定義できます。

$arr = array(
    array(1,2,3),
    array(4,5,6),
    array(7,8,9)
);

上記のコードは、3 つの要素を含む 2 次元配列を作成します。各要素は 3 つの要素を含む 1 次元配列です。

2. 2 次元配列内の null 値ペアを削除する

実際の開発では、2 次元配列内の null 値ペアを削除する必要がある場合があります。いわゆる null 値ペアは、配列内のキーに対応する値が空の文字列、null、0、または値がないことを意味します。この目的を達成するには、PHP のさまざまな配列関数を使用できます。

  1. array_filter 関数を使用してフィルタリングする

array_filter 関数を使用して、配列内のすべての null 値ペアをフィルタリングできます。その最初のパラメータは、フィルタリングする必要がある配列です。 2 つのパラメータは、配列内の各要素をフィルタリングするために使用されるコールバック関数です。

function filterEmpty($arr) {
    foreach($arr as $key=>$value) {
        if(is_array($value)) {
            $arr[$key] = filterEmpty($value);
        }
    }

    return array_filter($arr);
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

$arr = filterEmpty($arr);
var_dump($arr);

上記のコードは、2 次元配列内の null 値のペアをフィルターする filterEmpty 関数を定義します。これは、再帰関数を使用して、配列内の各要素を走査します。要素自体が配列の場合、filterEmpty 関数は、それ自体が continue として呼び出され、トラバースを実行します。次に、array_filter 関数を使用して各要素をフィルタリングし、NULL 値のペアを含まない配列を取得します。

  1. array_walk 関数を使用する

array_walk 関数は、配列内の各要素を反復し、それに対して特定の操作を実行できます。各要素を判定して null 値のペアを削除するコールバック関数を定義できます。

function walkEmpty(&$value, $key) {
    if(is_array($value)) {
        $value = array_filter($value);
    }

    if(empty($value)) {
        unset($value);
    }
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

array_walk($arr, 'walkEmpty');
var_dump($arr);

上記のコードでは、コールバック関数として walkEmpty 関数を定義し、array_walk 関数を使用して $arr 配列の各要素を走査して判定しています。要素が配列の場合は、まず array_filter 関数を使用して、配列内の null 値のペアをフィルターします。次に要素が空かどうかを確認し、空の場合はunset関数を使って配列から要素を削除します。

  1. foreach ループを使用して配列を走査する

foreach ループを使用して配列を走査し、各要素を判断することもできます。

function deleteEmpty($arr) {
    foreach($arr as $key=>$value) {
        if(is_array($value)) {
            $arr[$key] = deleteEmpty($value);
        }

        if(empty($value)) {
            unset($arr[$key]);
        }
    }

    return $arr;
}

$arr = array(
    array(1,'',3),
    array(4,5,''),
    array(0,8,null)
);

$arr = deleteEmpty($arr);
var_dump($arr);

上記のコードは、foreach ループを使用して $arr 配列内の各要素を走査し、判断する deleteEmpty 関数を定義しています。要素が配列の場合は、deleteEmpty 関数自体を呼び出して走査を続行します。次に要素が空かどうかを確認し、空の場合はunset関数を使って配列から要素を削除します。

3. 概要

2 次元配列は、PHP 開発でよく使用される一般的なデータ構造です。 2 次元配列の null 値ペアを削除することも一般的な操作です。上記の記事では、array_filter 関数、array_walk 関数、および配列を走査する foreach ループを使用する 3 つの実装方法を紹介しています。特定のニーズに基づいて、自分に合った方法を選択できます。

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

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