php中有很多排序的函數,sort,rsort,ksort,krsort,asort,arsort,natcasesort,這些函數用來對數組的鍵或值進行這樣,或那樣的排序。 可以終究有時候還需要一些函數來隨機獲取數組的元素。 array_rand()函數 隨機獲取數組中的一個函數,可以通過第二個參 ...
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 // )