簡體   English   中英

更好的解決方案?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM