I have a multidimensional array with many nested sub levels and I want to print it as a well formatted ol li ol li ... list. So I've created this function, but it doesn't work properly:
function loop($array) {
echo '<ol class="dd-list">';
$arrayObj = new ArrayObject($array);
foreach ( $iterator = $arrayObj->getIterator() as $key => $value ) {
if(is_array($value)) {
loop($iterator->current());
} else {
if($iterator->key()=='position') {
echo '<li class="dd-item" data-id="' . $iterator->current() . '">';
echo '<div class="dd-handle">' . $iterator->key() . ' ' . $iterator->current() . '</div>';
echo '</li>';
}
}
}
echo '</ol>';
}
How can I fix it? The given array is:
Array
(
[item] => Array
(
[0] => Array
(
[ID] => 22063
[position] => 1
[disegno] => Disegno 22063
[items] => Array
(
[item] => Array
(
[0] => Array
(
[ID] => 22315
[position] => 1.1
[disegno] => Disegno 22315
)
[1] => Array
(
[ID] => 22064
[position] => 1.2
[disegno] =>
Disegno 22064
)
[2] => Array
(
[ID] => 22065
[position] => 1.3
[disegno] =>
Disegno 22065
[items] => Array
(
[item] => Array
(
[0] => Array
(
[ID] => 22065_1
[position] => 1.3.1
[disegno] =>
Disegno 22065_1
)
[1] => Array
(
[ID] => 22065_2
[position] => 1.3.2
[disegno] =>
Disegno 22065_2
)
)
)
)
[3] => Array
(
[ID] => 22068
[position] => 1.4
[disegno] =>
Disegno 22068
)
)
)
)
[1] => Array
(
[ID] => 24728
[position] => 2
[disegno] =>
Disegno 24728
)
[2] => Array
(
[ID] => 445
[position] => 3
[disegno] =>
Disegno 445
)
[3] => Array
(
[ID] => 21318
[position] => 4
[disegno] =>
Disegno 21318
)
)
)