note 95736 deleted from function.array-walk-recursive by danbrown
| From: | danbrown@php.net | Date: | Tue, 19 Jan 2010 16:12:59 +0000 |
| Subject: | note 95736 deleted from function.array-walk-recursive by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-165114@lists.php.net to get a copy of this message | ||
Note Submitter: halvor at qualbeen dot net
----
I modified array_walk_recursive2 by egingell at sisna dot com to make it handle the result/response
from "userfunc()".
if (!function_exists('array_walk_recursive')){
function array_walk_recursive(&$input, $funcname, $userdata = "") {
if (!is_callable($funcname)) {
return false;
}
if (!is_array($input)) {
return false;
}
foreach ($input as $key => $value) {
if (is_array($input[$key])) {
array_walk_recursive($input[$key], $funcname, $userdata);
} else {
$saved_value = $value;
$saved_key = $key;
if (!empty($userdata)) {
$value = $funcname($value, $userdata);
} else {
$value = $funcname($value);
}
if ($value != $saved_value || $saved_key != $key) {
unset($input[$saved_key]);
$input[$key] = $value;
}
}
}
return true;
}
}