PHP の多次元配列から空の値を削除するには?

再帰関数を使用して多重配列内の null 値に対処できます。

次にサンプルコードを示します。

function removeEmptyValues(&$array) {
    foreach ($array as $key => &$value) {
        if (is_array($value)) {
            removeEmptyValues($value);
        } elseif (empty($value)) {
            unset($array[$key]);
        }
    }
}

$array = array(
    'key1' => 'value1',
    'key2' => '',
    'key3' => array(
        'subkey1' => 'subvalue1',
        'subkey2' => '',
        'subkey3' => array(
            'subsubkey1' => '',
            'subsubkey2' => 'subsubvalue2',
        )
    )
);

removeEmptyValues($array);

print_r($array);

运行上述代码后,输出结果如下:

Array
(
    [key1] => value1
    [key3] => Array
        (
            [subkey1] => subvalue1
            [subkey3] => Array
                (
                    [subsubkey2] => subsubvalue2
                )

        )

)

再帰的に関数を呼び出して removeEmptyValues を呼び出すことで、多重配列からすべての空の値を削除できます。サブ配列を処理するときは、元の配列を変更できるように、参照 &$value を使用してください。

bannerAds