【问题标题】:How do I echo this array in a for loop?如何在 for 循环中回显这个数组?
【发布时间】:2013-03-24 01:38:13
【问题描述】:

我有一些数组,每个数组都有 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] 这样的变量的语法吗?

谢谢!

【问题讨论】:

    标签: php arrays for-loop dynamic-arrays


    【解决方案1】:

    您需要使用变量变量名。 (自从我使用 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 etc)

    可能这样的事情可能会更好? (可能是 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";
    }
    

    【讨论】:

    • 尼克 - 谢谢!你提出了一个很好的问题,这是 $i + x 的越界问题我没有考虑过,但我可以嵌套一个 for 循环,在运行 13 次的主循环内部运行 4 次迭代(它正在创建表行)。好的,我试过了..它有效!我有 2 个嵌套的 for 循环...一个使用 $j 运行 13 次,内部循环使用 $i 运行 4 次: echo 'some html here '.${'myarrrray_row'.$j}[$i] .''; 非常感谢!
    【解决方案2】:

    听起来您需要使用可变变量。在此处查看文档: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];
      ...
    }
    

    【讨论】:

    • 啊,这看起来很简单.. :-) 谢谢 Hibiscus,我是新手,所以我不知道 $$ 变量,但我正在阅读您的链接。谢谢!有帮助。
    【解决方案3】:

    这样的事情怎么样:

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

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

    【讨论】:

    • 太棒了!!这也有效。谢谢埃文..我正在学习:)感谢你们乐于助人的人。干杯。对这种方法一无所知。
    • 埃文 - 第一个答案是有花絮的那个我真的需要在 $myarray_row0[0] 等上重新语法。所以我不得不标记那个但你的小费很棒,我希望我也可以标记它的价值!
    • @TimDonahue 嘿,别担心!很高兴你把一切都解决了。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多