2010-09-12 238 views
1

我試圖讓隨機值了一個數組,然後進一步將其分解,這裏的初始代碼:PHP爆炸陣列

$in = array('foo_1|bar_1', 'foo_2|bar_2','foo_3|bar_3','foo_4|bar_4','foo_5|bar_5'); 
$rand = array_rand($in, 3); 

$in[$rand[0]]; //foo_1|bar_1 
$in[$rand[1]]; //foo_3|bar_3 
$in[$rand[2]]; //foo_5|bar_5 

我要的是與上面相同,但每個「富」和「酒吧」通過自己的鑰匙單獨訪問,這樣的事情:

$in[$rand[0]][0] //foo_1 
$in[$rand[0]][1] //bar_1 

$in[$rand[1]][0] //foo_3 
$in[$rand[1]][1] //bar_3 

$in[$rand[2]][0] //foo_5 
$in[$rand[2]][1] //bar_5 

我試圖通過一個foreach循環爆炸$蘭特,但我明明做一些錯誤的n00b:

foreach($rand as $r){ 
$result = explode("|", $r); 
$array = $result; 
} 

回答

2

嘗試......

$in = array('foo_1|bar_1', 'foo_2|bar_2','foo_3|bar_3','foo_4|bar_4','foo_5|bar_5'); 

foreach($in as &$r){ 
    $r = explode("|", $r); 
} 

$rand = array_rand($in, 3); 

, 「對飛」 修改$in,所以它包含了你正在尋找的嵌套陣列結構。

現在...

$in[$rand[0]][0] //foo_1 
$in[$rand[0]][1] //bar_1 

$in[$rand[1]][0] //foo_3 
$in[$rand[1]][1] //bar_3 

$in[$rand[2]][0] //foo_5 
$in[$rand[2]][1] //bar_5 

我想這就是你要找的內容。

+0

工作完美,謝謝! – 2010-09-13 04:00:55

4

你接近:

$array = array(); 
foreach ($in as $r) 
    $array[] = explode("|", $r); 
1
foreach($rand as $r){ 
    $result = explode("|", $r); 
    array_push($array, $result); 
}