2013-07-27 61 views
0

我正在嘗試使用循環遍歷兩個數組的循環。如何通過使用兩個數組來分配PHP變量

我的第一個看起來是這樣的:

$pos = array("Yada Yada", "Boom Boom"); 

,第二個看起來像這樣:

$pos_var_names = array("yada", "boom"); 

我的目標是使用一個for循環,通過在兩個陣列自動循環播放同時和例如設置:

$yada = "Yada Yada"; 

我該如何以最有效的方式?

對不起,如果我失去了明顯的東西。已經連續編了幾個小時,我感覺有點頭暈。

此致敬禮!

+1

爲什麼對僅有2個元素的數組使用循環? – 2013-07-27 01:37:13

+0

@Akam http://sscce.org/(好吧,這不是一個很好的例子,但是一個例子實際上並不需要超過兩個元素在一個數組中) – Jasper

+0

我的數組有更多的元素比2.這是隻是一個例子。 – user2624679

回答

0

你可以使用一個for循環:

for ($i = 0; $i < count($pos); $i++) 
    ${$pos_var_names[$i]} = $pos[$i]; // variable variables 

但它是更優雅是這樣的:

extract(array_combine($pos_var_names, $pos)); 

這只是讓一個$ varname的=> $ POS陣列(見documentation for array_combine然後是extract()'ed


但是,一般情況下,最好只有一個關聯數組,而不是使用大量變量。它只是用無用變量填充變量範圍,這些變量可能與您擁有的其他變量衝突。

+0

雖然這在功能上可能是正確的,但我會添加更多的細節來解釋OP(誰在清楚地學習)發生了什麼。例如,指向文檔的鏈接,以及'array_combine()'的結果將給出OP的示例輸入。此外,爲什麼這樣的方法根本上有缺陷,以及回答原來的問題:*「我的目標是使用for循環」* – nickb

+0

@nickb好吧,擴展我的答案... – bwoebi

+0

謝謝!有什麼方法可以知道在特定情況下使用哪種語法。我想出了你的第一個選擇,但我沒有意識到它必須圍繞這個變量。 有時我使用「我的名字是$ name」,其他時候我用'我的名字是'。 $ name。''。如何知道在正確的時間使用哪一個? – user2624679

相關問題