- array_pop: documentation ( source)
<?php
function arraySum(array $array) {
$stack = [$array];
$sum = 0;
while (($items = array_pop($stack))) {
foreach ($items as $item) {
if (is_array($item)) {
$stack[] = $item;
}
else {
$sum += $item;
}
}
}
return $sum;
}
echo arraySum([1, [1, 1], [1, [1, 1]]]);