如何在for循环中回显此数组?

时间:2013-03-24 01:38:13

标签: php arrays for-loop dynamic-arrays

我有一些数组,每个数组中包含4个值,名为:

$myarray_row0
$myarray_row1
$myarray_row2

通常我可以使用这个echo语句来获取第一个数组中的值:

echo 'My value is '.$myarray_row0[0];   // This works fine

但是我想使用FOR LOOP来迭代它们而且我被卡住了因为我想使用类似的东西:

for ($i=0; $i<=10; $i++)
{
 echo 'My value is '.$myarray_row[$i][[$i]];
 echo 'My value is '.$myarray_row[$i][$i+1]];
 echo 'My value is '.$myarray_row[$i][[$i+2]];
 echo 'My value is '.$myarray_row[$i][[$i+3]];
}

我没有使用$ i的正确语法和所需的括号...我正在尝试(但是失败)让回显来吐出数组内容,例如:

$myarray_row0[0]
$myarray_row0[1]
$myarray_row0[2]
$myarray_row0[3]
etc

请注意,它不是真正的多维数组,它是一维的,但它几乎看起来像是多维的,因为数组名称中包含'row0','row1','row2'等。

任何人都知道使用for循环中可用的$ i来获取像$ myarray_row0 [1]这样的变量的语法吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

您需要使用变量变量名称。 (自从我使用php以来已经有一段时间了,所以可能是错的)

for ($i=0;$i<10l$i++) {
    echo 'My variable name is '.${'myarray_row'.$id}[$i+0];
    echo 'My variable name is '.${'myarray_row'.$id}[$i+1];
    echo 'My variable name is '.${'myarray_row'.$id}[$i+2];
    echo 'My variable name is '.${'myarray_row'.$id}[$i+3];
}

但是,根本不使用它们通常是一个好主意。相反,制作一个多维数组会对你的情况更好。

问题:如果您的$myarray_rowN有4个元素,为什么您的示例在索引中有$i+X

第一次迭代后肯定会超出范围:/(1 + 1 OK,1 + 2 OK,1 + 3 OK 1 + 4!OK等)

这样的事可能会更好吗? (可能是javascript)

$index = 0;
$rows = array();
while (isset(${'myarray_row'.$i})) {
    array_push($rows, ${'myarray_row'.$i});
}
foreach ($rows as $row) {
    echo 'My variable name is '.$row[0]."\r\n";
    echo 'My variable name is '.$row[1]."\r\n";
    echo 'My variable name is '.$row[2]."\r\n";
    echo 'My variable name is '.$row[3]."\r\n";
}

答案 1 :(得分:1)

听起来你需要使用变量变量。请参阅此处的文档:http://php.net/manual/en/language.variables.variable.php

这样的事情应该有效:

for ($i=0;$i<10;$i++) {
  $var = 'myarray_row'.$i;
  echo 'My variable name is ' . $$var[$i+0];
  ...
}

答案 2 :(得分:0)

这样的事情怎么样:

foreach($myarray_row0 as $key => $value){
echo 'The ' . $key . ' value of this array is: ' . $value;
}

以上内容将遍历$myarray_row0中的所有值并回显当前值