【发布时间】:2017-05-21 22:40:05
【问题描述】:
我正在尝试生成一个随机数组(如果我使用正确的术语),有可能重复但不相邻,并且在给定数组之外。
带变量的例子:狮子老虎熊猴子大象
我希望能够制作一条线,但有以下可能性:“狮子、老虎和熊”或“熊和狮子、猴子和大象”或“猴子和大象”或“大象、狮子和大象和老虎”
所以它需要随机数量的可能性(不少于两个 - 所以“熊和老虎”和任何其他具有两个选项的产品将是最小值 - 但也不超过七个。) ,我希望变量可以被复制,但不能彼此相邻,所以像“猴子和狮子、老虎和猴子”这样的东西是可能的。
由于我对 PHP 了解不多,这只是我尝试过的选项之一:
<?php
$input_array = array("lions", "tigers", "bears", "monkeys", "elephants");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
但由于它只生成静态数量的两个元素并且不会重复,它并不能完全产生我想要做的事情。
任何帮助将不胜感激,特别是如果它包含用于在每个变量之间放置单词“and”并打印它们的代码(而不是生成算法) - PHP 对我来说很新,我不确定如何在不搞砸的情况下做到这一点。
【问题讨论】:
-
尽管您提供了几行代码,但这似乎更像是请求编写代码而不是请求帮助修复代码。尝试一些代码,在其中生成一个 2 到 7 之间的数字,然后循环遍历那些随机多次的 input_array 值
-
@RST:感谢您的建议!我设法获得了一个更好的工作代码,涵盖了我最初尝试做的事情,但我现在仍然遇到重复值的问题。