我如何在多维数组中使用Shuffle函数随机化某个元素?
假设我有这个脚本:
$array = array(
array("Bird", "Brown", "Bear", "Bangkok", "Bat"),
array("Carrot", "Cat", "Crispy", "Cross", "Cable"),
array("All", "Apple", "Adam", "Apart", "Air")
);
array_walk($array, function (&$array) { shuffle($array); });
shuffle($array);
该脚本将给我一个垂直排列的数组和每个数组中的元素。
我需要的是除了第一个元素(位置0)为每个数组,我怎么能做到这一点,请问?
明显的解决方案是这样的:
// Remove and store the first element in a temporary variable
$firstElement = array_shift($array);
// Shuffle the remaining items
shuffle($array);
// Re-add (prepend) the original first item
array_unshift($array, $firstElement);
这可以很容易地应用到您的具体示例中:
function customShuffle(array &$array) {
$firstElement = array_shift($array);
shuffle($array);
array_unshift($array, $firstElement);
}
$array = array(
array("Bird", "Brown", "Bear", "Bangkok", "Bat"),
array("Carrot", "Cat", "Crispy", "Cross", "Cable"),
array("All", "Apple", "Adam", "Apart", "Air")
);
// vvvvv //
array_walk($array, function (&$array) { customShuffle($array); });
shuffle($array); // use "customShuffle" as well if needed