php递归解析数组 - 查找值

时间:2011-05-02 14:15:55

标签: php recursion

我有一个nxn数组,递归地我试图根据以下内容获得某些值:

我想搜索特定值(针),在这种情况下'KEYVAL_TO_FIND'如果找到它,那么,因为数组的那部分将始终具有相同的结构,我想得到{{ 1}}。

我怎么能实现这个目标?感谢

数组的外观示例(忽略键):

'MY_VALUE'

1 个答案:

答案 0 :(得分:2)

我使用的功能......

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;
}

我希望你喜欢并使用它:D 祝你有美好的一天!!