开发者

php recursively parse array - find value

I have an nxn array, which recursively I'm trying to get certain value based on the following:

I would like to search for specific value (needle), in this case 'KEYVAL_TO_FIND' if it is found, then, since that part of the array will always have the same structure, I would like to get 'MY_VALUE'.

How could I achieve this? Thanks

An example of how the array look like (ignore the keys):

[0] = Array
    (
        [0] = Array
            (
                [0] = Array
                        [0] = KEYVAL_TO_FIND
                        [1] = Array
                            (
                                [0] = CONST
        开发者_开发知识库                        [1] = MY_VALUE
                            )
                    )
        [1] = VAL
        [2] = Array
                (
                   [0] = FOO
                   [1] = BAR BAZ
                )
    )


a function I use...

function array_searchRecursive( $needle, $haystack, $strict=false, $path=array() )
{
    if( !is_array($haystack) ) {
        return false;
    }
    foreach( $haystack as $key => $val ) {
        if( is_array($val) && $subPath = array_searchRecursive($needle, $val, $strict, $path) ) {
            $path = array_merge($path, array($key), $subPath);
            return $path;
        } elseif( (!$strict && $val == $needle) || ($strict && $val === $needle) ) {
            $path[] = $key;
            return $path;
        }
    }
    return false;
}

I hope you like it and use it :D have a nice day!!

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜