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