- print_r: documentation ( source)
- array_pop: documentation ( source)
<?php
$combined = array(
'A' => array(
'B' => array(
'C' => array(null, null),
),
'D' => array(
'K' => array(null, null),
)
),
);
$stack = array(&$combined);
while (null !== ($ptr = &array_pop($stack))) {
$null_count = 0;
foreach ($ptr as $key => $value) {
if (is_array($value)) {
$stack[] = &$ptr[$key];
} elseif (null === $value) {
++$null_count;
}
}
if (count($ptr) === $null_count) {
$ptr = null;
}
}
print_r($combined);