Php 使用递归递增数组值

Php 使用递归递增数组值,php,arrays,recursion,Php,Arrays,Recursion,我举了一个例子来说明我不知道怎么做。当您调用函数时,它返回1个结果,或者如果它滚动一个5,那么我希望它滚动的每个结果的结果增加1倍,并返回一个数组,可能会进入类似的最大递归,20,如果有意义的话!:) 函数水果篮(&$fruit=array()){ $dice=rand(1,5); 开关($骰子){ 案例1: $水果['西瓜]=++$西瓜; 打破 案例2: $FROUT['orange']=++$orange; 打破 //等等。。。 案例5: 对于($i=1;$i我不确定我是否完全理解您的问题,

我举了一个例子来说明我不知道怎么做。当您调用函数时,它返回1个结果,或者如果它滚动一个5,那么我希望它滚动的每个结果的结果增加1倍,并返回一个数组,可能会进入类似的最大递归,20,如果有意义的话!:)

函数水果篮(&$fruit=array()){
$dice=rand(1,5);
开关($骰子){
案例1:
$水果['西瓜]=++$西瓜;
打破
案例2:
$FROUT['orange']=++$orange;
打破
//等等。。。
案例5:

对于($i=1;$i我不确定我是否完全理解您的问题,因为您的描述有点混乱,我无法添加评论,但从我的理解来看:

function fruitBasket(&$fruit = array(), $dice = 0, $depth = 1) {

    if($depth == 20)
    return $fruit;

    $dice = ($dice > 0 ? $dice : rand(1, 5));

    switch($dice) {
        case 1:
            $fruit['watermelon'] += 1;
        break;
        case 2:
            $fruit['orange'] += 1;
        break;
        // etc...
        case 5:
        $depth += 1;

            for($i = 1; $i <= rand(1, 5); $i++) {
                fruitBasket($fruit, $i, $depth);
            }
        break;
    }
    return $fruit;
}
函数果篮(&$fruit=array(),$dice=0,$depth=1){
如果($depth==20)
退回$fruit;
$dice=($dice>0?$dice:rand(1,5));
开关($骰子){
案例1:
$水果['西瓜]+=1;
打破
案例2:
$水果['orange']+=1;
打破
//等等。。。
案例5:
$depth+=1;

对于($i=1;$i哦,等等,它应该在标题中吗?你已经写了,不是吗?PPS:如果唯一的问题是如何添加最大递归-只需添加
$level
参数等待,那么我写的示例是正确的?…@Kunkka上将,你为什么要删除你之前的问题..上周看到类似的东西了吗
function fruitBasket(&$fruit = array(), $dice = 0, $depth = 1) {

    if($depth == 20)
    return $fruit;

    $dice = ($dice > 0 ? $dice : rand(1, 5));

    switch($dice) {
        case 1:
            $fruit['watermelon'] += 1;
        break;
        case 2:
            $fruit['orange'] += 1;
        break;
        // etc...
        case 5:
        $depth += 1;

            for($i = 1; $i <= rand(1, 5); $i++) {
                fruitBasket($fruit, $i, $depth);
            }
        break;
    }
    return $fruit;
}