2013-03-24 41 views
1

我有一些陣列具有它們中的每條4個值,命名爲:如何在for循環中回顯此數組?

$myarray_row0 
$myarray_row1 
$myarray_row2 

所以通常我可以第一陣列中使用echo語句來獲得的值:

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

但我要使用for循環通過他們迭代,我被卡住,因爲我想用這樣的:

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

我沒有使用正確的語法爲$我是一個ND所需的支架......我想(但沒有),以獲得回聲吐出陣列的內容,如:

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

請注意,這不是一個真正的多維數組,這是一維的,但它幾乎看起來像是多維的,因爲數組名稱中有'row0','row1','row2'等等。

任何人都知道獲取像$ myarray_row0 [1]這樣的變量的語法,使用for循環中可用的$ i's進行回顯?

謝謝!

回答

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"; 
} 
+0

尼克 - 謝謝!你提出了一個偉大的問題,這是與$ i + x的界限問題,我沒有考慮它,但我可以嵌套一個循環,運行4次迭代運行13次的主循環的內部(它創建錶行)。好吧,我試了一下..它的工作原理!我有2個嵌套循環...一個使用$ j運行13次,內部循環使用$ i運行4次:** echo'some html here'。$ {'myarrray_row'。$ j} [$ i]。 「'; **很多謝謝! – 2013-03-24 15:53:36

0

怎麼是這樣的:

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

以上將通過所有的值迭代中$myarray_row0和回聲的當前值

+0

神奇!這也適用。感謝埃文..我正在學習:)感謝你有幫助的人。乾杯。沒有關於這種方法的線索。 – 2013-03-24 15:57:21

+0

埃文 - 第一個答案是有一點我真的需要重新語法$ myarray_row0 [0]等語法。所以我不得不標記那一個,但你的提示是真棒,我希望我可以標記它也值! – 2013-03-26 20:48:00

+0

@TimDonahue嘿,別擔心!很高興你把這一切都解決了。祝你好運。 – 2013-03-26 20:58:10

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]; 
    ... 
} 
+0

啊,看起來像一個簡單的方法.. :-)謝謝芙蓉,我是一個新手,所以我不知道$$變量變量,但我正在閱讀您的鏈接。謝謝!很有幫助。 – 2013-03-24 15:54:59