PHP中array_rand()函數在數組中隨機抽取n個資料的值

來源:互聯網
上載者:User

定義和用法

array_rand() 函數返回數組中的隨機鍵名,或者如果您規定函數返回不只一個鍵名,則返回包含隨機鍵名的數組。

說明

array_rand() 函數從數組中隨機選出一個或多個元素,並返回。
第二個參數用來確定要選出幾個元素。如果選出的元素不止一個,則返回包含隨機鍵名的數組,否則返回該元素的鍵名。

array_rand() 在你想從數組中取出一個或多個隨機的單元時相當有用。它接受 input 作為輸入數組和一個可選的參數 num_req,指明了你想取出多少個單元 - 如果沒有指定,預設為 1。如果你只取出一個,array_rand() 返回一個隨機單元的鍵名,否則就返回一個包含隨機鍵名的數組。這樣你就可以隨機從數組中取出鍵名和值。   

如下例所示:

<?php

$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
print $input[$rand_keys[0]] . "\n";
print $input[$rand_keys[1]] . "\n";

輸出:

Trinity

Cypher
 
 
【注意】
當 num_req 為 1 時,返回非數組資料,而當 num_req >=2 時,返回數組資料,所以,如果取的數量不確定是否為 1 的情況下,建議如下方式統一轉換為數組:

$num_req = max(1, $num_req);
$num_req = min($num_req, count($input));
$rand_keys = (array)array_rand($input, $num_req);

組隨機抽取shuffle()和array_rand()

隨機抽取就是將原有數組的元素打亂後輸出,這意味著每次執行後,抽取的順序或元素都不同,該功能可以用來在網頁上每次顯示不同的廣告用shuffle()函數實現數組的隨機抽取:

<?php
    $textArray = array('1','2','3','4','5','6','7');
    shuffle($textArray);
    print_r($textArray);
?>

結果如下顯示:
Array ( [0] => 6 [1] => 3 [2] => 7 [3] => 4 [4] => 1 [5] => 2 [6] => 5 )
實現的數組元素的隨機排序;
另外php還提供了從數組中隨機抽取值的函數:array_rand() ,其調用格式如下:
array_rand(<數組>,[抽取元素的個數]);

<?php
    $arry = array('A','B','C','D');
    $result = array_rand($arry,2);
    foreach ($result as $val) {
    echo $arry["$val"].""; }
?>

結果顯示如下:
B
C
重新整理有不同的結果;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.