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

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

能夠終究有時候還須要一些函數來隨機獲取數組的元素。數組

array_rand()函數函數

隨機獲取數組中的一個函數,能夠經過第二個參數指定一次獲取多少個元素,第一個參數目標數組spa

注意:這裏的隨機只是僞隨機數code

例子1blog

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 數組元素的個數。element

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

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 // )
相關文章
相關標籤/搜索