如何在PHP中嵌套for循环中创建数组

时间:2014-12-13 13:33:35

标签: php arrays

我想从这个嵌套的for循环

创建一个数组
for($i = 0; $i < 2; $i++){
    for($j = 0; $j < 3; $j++){
        $dis = $i + $j;
        createArr($dis, $i);
    }
    echoArr($i);
}

为此,我创建了一个名为createArr()的函数,它接收$ dis和$ i迭代器。

$arr= array();

function createArr($dis, $i){
    $arr= 'arr'.$i;
    array_push($arr, $dis);
    return $arr;
}

在嵌套for循环$ i = 0的第一次迭代期间,我希望$ arr成为此示例中数组的名称。因此,我希望使用array_push函数将数组的名称设为$arr0在$ i = 0时推送$ j的所有元素然后在$ i的第二次迭代时存储到另一个数组中,当它从$arr1开始时,将该数组的新元素推送到$ j的迭代中当$ i = 1时;

function echoArr($i){
    $arr= 'arr'.$i;
    return $arr;

}

这最后一个函数是在完成$ i的迭代后回显完成的数组。

2 个答案:

答案 0 :(得分:0)

我不确定你的期望

$arr= 'arr'.$i;
array_push($arr, $dis);

要做,但array_push期望第一个参数是数组, 但是你可以看到$ arr是一个字符串。

这是你需要的吗?

$arr = array();

for($i = 0; $i < 2; $i++){
    for($j = 0; $j < 3; $j++){
        $dis = $i + $j;
        array_push($arr, createArr($dis, $i));
    }
    echoArr($i);
}

function createArr($dis, $i){
    return array('arr'.$i => $dis);
}

print_r($arr);

//prints: Array ( [0] => Array ( [arr0] => 0 ) [1] => Array ( [arr0] => 1 ) [2] => Array ( [arr0] => 2 ) [3] => Array ( [arr1] => 1 ) [4] => Array ( [arr1] => 2 ) [5] => Array ( [arr1] => 3 ) )

答案 1 :(得分:0)

你想要达到什么目的? 对于未来,请描述您希望实现的目标,以便我们能够帮助您更好地实现目标。

让我先从第一段代码开始

您想要回显数组。你只是在回应专栏。 为什么要构建自己的函数来向数组添加内容? 如果你对回报做点什么

$ myarray [$ i] = createArr($ key,$ value); //不是一个好的解决方案,只是为了解释。

因为我不知道你想要在这里实现一个数组循环的例子

$ myarray = array();

for($i = 0; $i < 2; $i++){
    for($j = 0; $j < 3; $j++){
        $dis = $i + $j;
        $myarray[$i][$j] = 'row:' . $i . ' column' . $j;
    }
}
var_dump($myarray);

和转储

array (size=2)
  0 => 
    array (size=3)
      0 => string 'row:0 column0' (length=13)
      1 => string 'row:0 column1' (length=13)
      2 => string 'row:0 column2' (length=13)
  1 => 
    array (size=3)
      0 => string 'row:1 column0' (length=13)
      1 => string 'row:1 column1' (length=13)
      2 => string 'row:1 column2' (length=13)