【问题标题】:php multidimensional array recursivephp多维数组递归
【发布时间】:2015-02-19 21:21:05
【问题描述】:

我一直在寻找并努力让它发挥作用,但我的大脑无法处理它。我在这里打电话来看看是否有人可以帮助我使用这个递归函数。

示例数组:

$array = array(
            array(4),
            array(3,1),
            array(4,2,1)
        );

预期输出数据:

434
432
431
424
422
421

我的开始:

function recursive($array){
    foreach($array as $key => $value){
        if(is_array($value)){
            recursive($value);
        } else{
            echo $value;
        }
    }
}

输出:431421

我不明白如何多次返回所有长度。

希望得到帮助!谢谢。

编辑: 逻辑?

434
 12
  1

这就是它从一开始就获取数字的方式。
这意味着:
从顶部看,434 是一种组合
第二行是减去它上面的数字。所以 3-1 = 2 ( 424 )
第三行是第一次减法的结果的减法。 就像最后一行是 (4-2)-1 = 1 (第一个 422。然后 421 ,还有 432 和 431
预期的输出是数字的所有可能性。

【问题讨论】:

    标签: php arrays recursion multidimensional-array


    【解决方案1】:
    function walkme($array, $c) {
        if (!count($array)) {
                echo "$c\n";
                return;
        }
        $last=array_pop($array);
        foreach ($last as $l) {
                walkme($array, $l.$c);
        }
    }
    
    $array = array(
            array(4),
            array(3,2),
            array(4,2,1)
        );
    
    walkme($array, "");
    

    结果:

    434
    424
    432
    422
    431
    421
    

    【讨论】:

    • 看起来很不错的人,非常感谢!我不能说看到一个有效的例子我有多高兴。现在我需要努力学习。
    猜你喜欢
    • 2017-02-26
    • 2020-03-21
    • 2014-10-31
    • 2013-11-11
    • 2017-12-28
    • 2017-11-28
    • 2010-12-08
    • 2011-11-27
    • 1970-01-01
    相关资源
    最近更新 更多