PHP array_and проблема перетасовки с v5.2.10 + - PullRequest
0 голосов
/ 25 апреля 2011

Я только недавно обновил свой PHP до более новой версии и обнаружил, что он сделал некоторые из моего старого, когда-то функционального кода, бесполезным. А именно, поскольку v5.2.10 с array_rand «результирующий массив ключей больше не перемешивается» и в этом заключается проблема.

Следующий код больше не работает, то есть он не перетасовывается случайным образом, как раньше:

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

//OUTPUTS:

$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

Есть идеи, как вернуть ту же функциональность?

Спасибо.

1 Ответ

3 голосов
/ 25 апреля 2011
$rand = array_rand($in, 3);
shuffle($rand);
...