php中讓數組順序隨機化,打亂順序等


php中有很多排序的函數,sort,rsort,ksort,krsort,asort,arsort,natcasesort,這些函數用來對數組的鍵或值進行這樣,或那樣的排序。

可以終究有時候還需要一些函數來隨機獲取數組的元素。

array_rand()函數

隨機獲取數組中的一個函數,可以通過第二個參數指定一次獲取多少個元素,第一個參數目標數組

注意:這里的隨機只是偽隨機數

例子1

1 $arr = [1, 2, 3, 4, 5];
2 print( array_rand( $arr, 6 ) );

輸出:

Warning: array_rand(): Second argument has to be between 1 and the number of elements in the array in D:\workspace\project_shop\demo.php on line 3

其實echo什么也沒有輸出,只有一個警告,就是第二個參數一定要 小於等於 $arr 數組元素的個數。

例子2 正常的用法,返回的是一個數組。

1 $arr = [1, 2, 3, 4, 5];
2 print_r( array_rand( $arr, 3 ) ) ;
3 // Array
4 // (
5 //     [0] => 0
6 //     [1] => 1
7 //     [2] => 2
8 // )

shuffe()函數 ,打亂數組中的元素位置

這個函數按引用傳遞一個目標數組,返回真假值

例子3 從結果可以看到,打亂元素位置順序之后,並未保留原來的鍵值關系

 1 $arr = [1, 2, 3, 4, 5];
 2 var_dump( shuffle( $arr ) ) ;
 3 print_r( $arr );
 4 // bool(true)
 5 // Array
 6 // (
 7 //     [0] => 3
 8 //     [1] => 4
 9 //     [2] => 2
10 //     [3] => 1
11 //     [4] => 5
12 // )


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM