【问题标题】:How to insert randomly entries of an array in another array如何在另一个数组中随机插入一个数组的条目
【发布时间】:2012-03-21 11:39:04
【问题描述】:

假设我有这个数组:

$numbers = array(1,2,3,4,5);

还有这个数组:

$letters = array('A','B','C');

我想将$letters 条目随机放入$numbers 中。我不关心$letters 的顺序,但我希望$numbers 保持顺序。目标是拥有这种数组:

$randomLettersInNumbers = array(1, 'B', 2, 3, 'A', 4, 'C', 5);

我怎样才能做到这一点?

【问题讨论】:

  • 嗯...不:/对不起,我的问题是否太大...?我相信我必须使用 array_splice 但我所有的尝试都以一个完全巨大且难以理解的函数结束(这不起作用)。
  • 好像 PHP 没有数组的任意插入函数,这样写起来很乱。在 python 中很简单:[numbers.insert(random.randint(0, len(numbers) - 1), letter) for letter in letters]
  • @alfasin 没有重复。一个数组应该保持有序,而一个数组是随机和随机插入的。这与引用的问题有很大不同。这是可能的解决方案。
  • @SamuelHerzog 很好的论据 :)

标签: php arrays random


【解决方案1】:
foreach($letters as $letter)
{
    array_splice($numbers, rand(0, count($numbers)), 0, $letter);
}
print_r($numbers);

【讨论】:

  • 如果您正在使用类对象并且只想插入一个项目,您仍然必须将其作为具有一个元素的 数组提供,否则它将被强制转换为数组(每个属性都是一个键)。
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 2014-05-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多