我有一些数组,每个数组中包含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]这样的变量的语法吗?
谢谢!
答案 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
中的所有值并回显当前值