1

我有一些数组,每个数组都有 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 和所需的括号使用正确的语法......我正在尝试(但失败)让 echo 吐出数组内容,例如:

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

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

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

谢谢!

4

3 回答 3

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";
}
于 2013-03-24T01:43:07.870 回答
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];
  ...
}
于 2013-03-24T01:44:49.657 回答
0

像这样的东西怎么样:

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

以上将遍历所有值$myarray_row0并回显当前值

于 2013-03-24T01:43:05.767 回答