$v) { if (is_array($v)) { if ($callback($v, $k)) { $new_array[$k] = self::walkRecursive($v, $callback); } } else { if ($callback($v, $k)) { $new_array[$k] = $v; } } } $array = $new_array; return $array; } }