开发者

array_walk_recursive return value

开发者 https://www.devze.com 2023-02-06 08:29 出处:网络
I am using array_walk_recursive with a callback function to search within a nested array for specified key:

I am using array_walk_recursive with a callback function to search within a nested array for specified key:

array_walk_recursive($array, array($this, 'walk_array'), $key);

Here is the callback function:

function walk_array($value, $key, $userdata = '')
{
    if ($key === $userdata)
    {
        self::$items_array[$key] = $value;
        echo $value . "<br />\n";
    }
}

The problem is that I can not find a way to store/return the found elements from the callback function even though I am using static variable $items_array but it always contains the last item processed by the array_walk_recursive. On the other hand, if I echo the found elements from callback function:

echo $v开发者_开发技巧alue . "<br />\n";

All found elements are echoed fine.

How do I return or store the found elements from the callback function?


If $key is going to correspond to multiple values in the nested arrays that you walk through, your $item_arrays should have its own array for that key. Otherwise, all you're really doing is overwriting self::$items_array[$key] with every value that comes by.

Try this:

self::$items_array[$key][] = $value;
0

精彩评论

暂无评论...
验证码 换一张
取 消