这个PHP for循环仅限于两次迭代,但有三个数组?

时间:2016-03-27 21:53:27

标签: php arrays

这是我希望实现的模式:

0 => 6 => "未选中"

其中0为增量,6为任意值,"未检查"是任意的

我可以看到为什么有三个,输出的数组,有三个$ arrray()'它们由$ array(3)显示但我不明白的是for循环将循环限制为两次运行。从0到1,为什么有三个而不是两个?我看到两个"未检查"。第一个是什么?

我没有很好地掌握多维数组。

所以我有这个:

<?php

// $array = [][]; this is not correct
$array = [[]]; // original to get output below
$b = 0;

for($i = 0; $i < 2; $i++) {
  $array[][$i] = "not checked";
}

var_dump($array);

?>

哪个输出:

array(3) { 
  [0]=> array(0) {
    // blank
  } 
  [1]=> array(1) {
    [0]=> string(11) "not checked" 
  } 
  [2]=> array(1) {
    [1]=> string(11) "not checked" 
  } 
} 

当前工作代码

<?php

for($i = 0; $i < 2; $i++) {
  $array[][$i] = "not checked";
}

var_dump($array);

?>

输出:

array(2) { 
  [0]=> array(1) {
    [0]=> string(11) "not checked" 
  } 
  [1]=> array(1) { 
    [1]=> string(11) "not checked" 
  } 
} 

1 个答案:

答案 0 :(得分:1)

PHP的优点是数组和字符串操作。如果你真的想要,你可以从$a = array();开始,但你可以这样做:

<?php
    $a[0][6] = "not checked";
    var_dump($a);
?>

我认为你想要映射的模式更多。但是如果你想让第一个增加,那么只需将$i放在第一维中。但正如其他人指出你的宣言并不完全正确。 array()函数初始化数组,而不是[][];