<?php include "../src/helpers.php"; $input = ""; $handler = ""; $result = TraverseArray($input, $handler); var_dump($result);
/** * (macro) TraverseArray * Traverses an array with filters. * * @param input Any array * @param handler The handling function */ function TraverseArray($input, $handler) { // prepre array if (is_object($input)) { $input = (array) $input; } // sanity check if (!is_array($input)) { return false; } // cycle foreach ($input as $key => $value) { // prepare switch (true) { case is_object($key) || is_array($key): TraverseArray($key, $handler); break; case is_object($value) || is_array($value): TraverseArray($value, $handler); break; default: if (is_callable($handler)) { $handler($key, $value); } break; } } }