如何排除多维数组中的某个元素,并使用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),我该怎么做呢?
发布于 2013-05-25 06:37:25
显而易见的解决方案是这样的:
// 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 neededhttps://stackoverflow.com/questions/16744480
复制相似问题