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 と必要な括弧に正しい構文を使用していません... 次のような配列の内容を吐き出すためにエコーを取得しようとしています (しかし失敗しています)。

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

これは実際には多次元配列ではなく、1 次元ですが、配列名に「row0」、「row1」、「row2」などが含まれているため、ほとんど多次元のように見えることに注意してください。

$myarray_row0[1] のような変数を for ループ内で使用できる $i を使用してエコーするための構文を知っている人はいますか?

ありがとう!

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];
}

ただし、一般的には、それらをまったく使用しないことをお勧めします。代わりに多次元配列を作成する方が、あなたの場合にははるかに適しています。

質問: 要素が 4 つある場合、例のインデックスに要素があるの$myarray_rowNはなぜですか?$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 に答える