2012-10-08 48 views
0

可能重複:
foreach with three variables add如何在PHP中循環兩個數組?

我是新來的PHP所以多多包涵。

我有兩個變量,一個url像這樣:

?foo=1,2,3,4&bar=a,b,c,d 

兩個參數總是有元素的量相同。我需要遍歷元素的量如下所示:

1a 
2b 
3c 
4d 

和在每次迭代分配兩個變量foobar值。

如果這是JavaScript沒問題,但我不知道如何做到這一點PHP。這是我有:

$foo = strtok($rvar_foo,","); 
$bar = strtok($rvar_bar,","); 
while ($foo){ 
    # now how do I get the corresponding value for $bar? 
} 
+1

[在PHP foreach循環多個索引變量(可能重複http://stackoverflow.com/questions/4157810/multiple-index -variables-in-php-foreach-loop); [foreach有三個變量添加](http://stackoverflow.com/questions/7748115/foreach-with-three-variables-add) – hakre

+1

還應該有噸的重複第二部分關於如何使用strtok或轉換字符串以逗號排列。 – hakre

+0

我正在嘗試使用現在。 – frequent

回答

4
$foo = isset($_GET['foo']) ? explode(",", $_GET['foo']) : array(); 
$bar = isset($_GET['bar']) ? explode(",", $_GET['bar']) : array(); 

for ($i = 0; $i < count($foo); $i++) { 
    echo $foo[$i] . $bar[$i] . "<br />"; 
} 

這是你想要的嗎?

輸出

1a 
2b 
3c 
4d 
+0

不確定。試。 '爆炸'聽起來可疑,但... :-) – frequent

+0

@frequent'爆炸('delimiter',$字符串)'就像javascripts'string.split('delimiter')''功能。 – h2ooooooo

+0

@frequent很搞笑..... :) – Baba

1

也許你正在尋找array_combine。它從兩個數組創建一個數組,使用一個數組作爲鍵,另一個數組作爲值。

$foo = explode(',', $_GET['foo']); 
$bar = explode(',', $_GET['bar']); 
$foobar = array_combine($foo, $bar); 

這將使用從$foo作爲其鍵和$bar這些值的值導致$foobar

調用print $foobar[1]將導致a被打印到輸出。 (你可以找到一個運行實例here

3

使用array_map

function my_function($a, $b) 
{ 

    var_dump($a . $b); 
    // Do something with both values. 
    // The first parameter comes from the first array, etc. 
} 

array_map("my_function", explode(",",$_GET['a']), explode(",",$_GET['b'])); 
+0

你不覺得'$ _GET ['a']'需要一個數組,所以它應該是'array_map(「my_function」,explode(「,」,$ _ GET ['a']),explode(「,」,$ _ GET ['b']));' – Baba

+0

噢拍,你說得對。我忘了PHP不會自動創建數組。這是我不使用PHP的許多原因之一:-) –

+0

+1不錯的..更新您的代碼 – Baba