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 を使用してください。