public static function path($array, $path, &$found, $delimiter = '.')
{
if (!is_array($array)) {
return false;
}
if (is_array($path)) {
$keys = $path;
} else {
if (array_key_exists($path, $array)) {
$found = $array[$path];
// No need to do extra processing
return true;
}
$keys = explode($delimiter, trim($path, "{$delimiter} "));
}
do {
$key = array_shift($keys);
if (ctype_digit($key)) {
$key = (int) $key;
}
if (isset($array[$key])) {
if ($keys) {
if (is_array($array[$key])) {
$array = $array[$key];
} else {
break;
}
} else {
$found = $array[$key];
return true;
}
} else {
break;
}
} while ($keys);
// Unable to find the value requested
return false;
}