【问题标题】:Lopp through multidimensional array recursively递归循环遍历多维数组
【发布时间】:2021-01-18 06:27:06
【问题描述】:

我正在学习递归。我有二维数组。我想得到大于 100 的数字

$arr=[923,100=>[123,158,12],111,12];
check_number($arr)

function check_number($arg){
        static $list=[];
        foreach($arg as $k=>$v){
            if(is_array($v)){
                check_number($v);
            }
            if($v>100){
                $list[]=$v;
            }
          
        }
        return $list;
    }

结果是一个数组:

 array:5 [▼
      0 => 923
      1 => 123
      2 => 158
      3 => array:3 [▼
        0 => 123
        1 => 158
        2 => 12
      ]
      4 => 111

我不明白为什么键 3 包含嵌套数组。请给我一些解释。

【问题讨论】:

    标签: php arrays recursion


    【解决方案1】:

    当你找到一个列表时,你仍在运行下一个比较...

    if($v>100){
        $list[]=$v;
    }
    

    此时您将数组与 100 进行比较,这将添加到数组中以及 $list

    将其更改为elseif,它将执行其中一个或另一个...

    elseif($v>100){
        $list[]=$v;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 2013-04-01
      • 2020-10-15
      • 1970-01-01
      相关资源
      最近更新 更多