首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何排除数组中的某个元素,我使用Shuffle函数对其进行了随机化?

我如何排除数组中的某个元素,我使用Shuffle函数对其进行了随机化?
EN

Stack Overflow用户
提问于 2013-05-25 06:29:43
回答 1查看 194关注 0票数 1

如何排除多维数组中的某个元素,并使用Shuffle函数对其进行随机化?

假设我有这个脚本:

代码语言:javascript
复制
$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),我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-25 06:37:25

显而易见的解决方案是这样的:

代码语言:javascript
复制
// 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);

这可以很容易地应用到您的特定示例中:

代码语言:javascript
复制
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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16744480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档