php – 陣列亂數(重新洗牌)

我們需要把一個存在的陣列亂數洗牌,並從中取得n筆,產生一筆新的亂數排序,這時可以使用這個方法。

	/**
	 * 陣列洗牌
	 * 來源:http://php.net/manual/en/function.array-rand.php
	 * 
	 * @param   $arr 要洗牌的陣列
	 * @param   $num 數量	
	 * @return  返回陣列
	 */
	public static function array_random($arr, $num = 1) 
	{
	    shuffle($arr);
	    
	    $r = array();

	    for ($i = 0; $i < $num; $i++) 
	    {
	        $r[] = $arr[$i];
	    }
	    
	    return $num == 1 ? $r[0] : $r;
	}

其中 shuffle() 本身就是亂數排序陣列。這只是稍作變化。

發表迴響