该脚本选择数组内的元素并打印它。
<?php
$word = array("THE", "QUICK", "BROWN", "FOX", "JUMPS");
$rand_keys = array_rand($word, 2);
echo $word[$rand_keys[0]];
echo $word[$rand_keys[1]];
?>
它有效,但我正在使用一些功能
数组差异();
在我的脚本中从$word
变量中搜索并从元素列表示例中删除:
$word = array("THE", "QUICK", "BROWN", "FOX", "JUMPS");
$sentence = array("QUICK", "BROWN");
$input = array_diff($word, $sentence);
那么$input
包含array("THE", "FOX", "JUMPS");
对吗?
我像这样申请脚本:
<?php
$word = array("THE", "QUICK", "BROWN", "FOX", "JUMPS");
$sentence = array("QUICK", "BROWN");
$input = array_diff($word, $sentence);
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]];
echo $input[$rand_keys[1]];
?>
它也可以工作,因为它在数组中包含 3 个元素。如果我做更多的过滤和
$输入
变量仅包含 1 个元素 ex:$input
仅包含array("BROWN");
脚本将不再运行并出现如下错误:
警告:array_rand():第二个参数必须介于 1 和数组中的元素数之间
注意:未定义索引:in
注意:未定义索引:in
如果数组元素仅包含1,我该如何运行脚本?
我已经走到这一步了,但有更好的解决方案吗?
<?php
$word = array("THE", "QUICK", "BROWN", "FOX", "JUMPS");
if(count($input) >= 2)
{
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
}
else
{
echo end($input);
}
?>