0

我确实有办法在数组中获取随机元素:

$array1 = array("Bird", "Animal", "Tower", "Car", "Tree");
$rand_keys = array_rand($input, 4);

echo $array1[$rand_keys[0]] . "\n";
echo $array1[$rand_keys[1]] . "\n";
echo $array1[$rand_keys[2]] . "\n";
echo $array1[$rand_keys[3]] . "\n";

但是,如果我有 3 个数组,我也可以随机化它们的元素:

$array1 = array("Bird", "Animal", "Tower", "Car", "Tree");
$array2 = array("Falcon", "Cat", "Man", "Poll", "Sea");
$array3 = array("Lion", "Apple", "Rock", "Ball", "Tea");

我怎样才能获得数组本身的垂直随机化?

我需要结果像这些模式:

Car Tree Bird Animal Tower  // array1
Man Poll Falcon Cat Sea     // array2
Rock Ball Tea Lion Apple    // array3

如果我刷新页面,另一个:

Lion Apple Rock Ball Tea    // array3
Animal Tower Car Tree Bird  // array1
Man Cat Sea Poll Falcon     // array2
4

4 回答 4

0
$array = array(
  array('Bird', 'Animal', 'Tower', 'Car', 'Tree'),
  array('Falcon', 'Cat', 'Man', 'Poll', 'Sea'),
  array('Lion', 'Apple', 'Rock', 'Ball', 'Tea')
);

array_walk($array, function (&$array) { shuffle($array); });
shuffle($array);

var_dump($array);
于 2013-05-24T14:51:20.003 回答
0

洗牌每一行,然后洗牌主阵列。

foreach($mainArray as &row)
  shuffle($row);

shuffle($mainArray);
于 2013-05-24T14:51:39.250 回答
0
 $array1= array("Bird", "Animal", "Tower", "Car", "Tree");
 $array2= array("Falcon", "Cat", "Man", "Poll", "Sea");
 $array3= array("Lion", "Apple", "Rock", "Ball", "Tea");
 $arr = array_merge($array1,$array2,$array3);
 shuffle($arr);
 print_r($arr);

Merge these arrays with array_merge() and use shuffle()

于 2013-05-24T13:54:23.650 回答
0

您可以使用array_merge

$arrays = array_merge($array1, $array2, $array3);
$rand_keys = array_rand($arrays, 4);

编辑:

看来你想洗牌

$arrays[0] = array("Bird", "Animal", "Tower", "Car", "Tree");
$arrays[1] = array("Falcon", "Cat", "Man", "Poll", "Sea");
$arrays[2] = array("Lion", "Apple", "Rock", "Ball", "Tea");

foreach (array_keys($arrays) as $key) {
    shuffle($arrays[$key]);
};
shuffle($arrays);

foreach ($arrays as $array) {
    print_r($array);
}
于 2013-05-24T13:50:05.240 回答