PHP esplode arrays

Sto cercando di get valori casuali da un arrays e poi suddividerli ulteriormente, ecco il codice iniziale:

$in = arrays('foo_1|bar_1', 'foo_2|bar_2','foo_3|bar_3','foo_4|bar_4','foo_5|bar_5' ); $rand = arrays_rand($in, 3); $in[$rand[0]]; //foo_1|bar_1 $in[$rand[1]]; //foo_3|bar_3 $in[$rand[2]]; //foo_5|bar_5 

Quello che voglio è lo stesso di sopra ma con each 'foo' e 'bar' individualmente accessibili tramite la propria chiave, qualcosa del genere:

 $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 

Ho provato a esplodere $ rand tramite un ciclo foreach ma sto ovviamente facendo un errore n00b:

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

Prova questo…

 $in = arrays('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 = arrays_rand($in, 3); 

Ciò modifica $in "al volo", quindi contiene la struttura di arrays nidificata che stai cercando.

Adesso…

 $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 

Penso che sia quello che stai cercando.

Eri vicino:

 $arrays = arrays(); foreach ($in as $r) $arrays[] = explode("|", $r); 
 foreach($rand as $r){ $result = explode("|", $r); arrays_push($arrays, $result); }