PHP递归多维循环

$printArr = recursive($newArray); //calls recursive function
$data = [];
var_dump($data);
var_dump($printArr);
    function recursive($array, $level = 0)
    {
        $searchingValue = 'tableName';
        foreach($array as $key => $value)
        {
                //If $value is an array.
                if(is_array($value))
                {
                    recursive($value, $level + 1);
                } 
                else
                {
                    //It is not an array, so print it out.
                    if($key == $searchingValue)
                    {
                        echo "[".$key . "] => " . $value, '<br>';
                        $data[] = $value;
                    }
                }
        }
    }

所以我有这个功能,我试图将$value值保存到$data []数组中.但它总是将它返回为空,我不知道为什么我不能在函数外部保存$value.
如果我回显$value我得到了我需要的东西,但就像我提到的那样,变量在这种情况下不会被保存 – 表名.

解决方法:

您需要将$数据传递给递归函数.您还需要返回$data.

试试这段代码

function recursive($array, $level = 0, $data =[])
{
    $searchingValue = 'tableName';
    foreach($array as $key => $value)
    {
            //If $value is an array.
            if(is_array($value))
            {
                recursive($value, $level + 1 , $data);
            } 
            else
            {
                //It is not an array, so print it out.
                if($key == $searchingValue)
                {
                    echo "[".$key . "] => " . $value, '<br>';
                    $data[] = $value;
                }
            }
    }
    return $data;
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...