function recursive_add($tree, $id, $depth) { foreach ($tree as $key => $value) { $new = $key; while (!is_numeric($new) || $new < 2) { $new = aaddNode(array('node_parent' => $id, 'node_name' => apostrof($key), 'node_content' => apostrof($key), 'template_id' => 2, 'node_system_access' => $depth > 1 ? 'public' : 'moderated', 'node_external_access' => 'yes')); } $tree[$new] = $tree[$key]; unset($tree[$key]); //rename key to new $tree[$new] = recursive_add($tree[$new], $new, $depth + 1); } //foreach($tree as $key => $value) $tree[$key] = recursive_add($tree[$key],$key); return $tree; }
function recursive_add($obj) { $total = 0; foreach ($obj as $k => $v) { if (is_scalar($v)) { $total += $v; if ($v === "red" && is_assoc($obj)) { // part 2 return 0; } } else { $total += recursive_add($obj[$k]); } } return $total; }