[英]better solution?
該腳本在數組內部拾取元素並進行打印。
<?php
$word = array("THE", "QUICK", "BROWN", "FOX", "JUMPS");
$rand_keys = array_rand($word, 2);
echo $word[$rand_keys[0]];
echo $word[$rand_keys[1]];
?>
它有效,但是我正在使用某些功能
array_diff();
該腳本在我的腳本中從$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個元素,例如: $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);
}
?>
錯誤消息簡單易懂。 您不能在array_rand()
第二個參數中使用大於元素數的數字。
在調用此函數之前,請檢查什么是元素計數,如果只有一個,請在不調用array_rand()
情況下使用此元素。 當您根本沒有任何要素時,也要為情況做好准備。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.