我在一個陣列中的多個圖像文件名,並想以產生固定一整天隨機圖像,所以我想利用日期使用固定的種子在同一天(「YMD」)這顆種子每天都會變化,從而每天都會產生新的獨特種子。array_rand種子
問題是,array_rand不接受種子作爲參數。
我在一個陣列中的多個圖像文件名,並想以產生固定一整天隨機圖像,所以我想利用日期使用固定的種子在同一天(「YMD」)這顆種子每天都會變化,從而每天都會產生新的獨特種子。array_rand種子
問題是,array_rand不接受種子作爲參數。
具有相同的種子將不能保證你每次都會得到相同的號碼。我想創造一些僞隨機函數,例如依賴,從年,月,日,而不是小時,分鐘,秒,只會從這些值給出相同的結果,例如
function pseudorandom_day_image_index($array_of_pictures){
$year=date('Y');
$month=date('m');
$day=date('d');
return ($year*$month*$day) % count($array_of_pictures);
}
這會給你常數(一天)的圖片的索引
計算日期(「年月日」)返回人類可讀的字符串的哈希值,你會得到一個唯一的種子,每天
類似:
$seed = md5(date("Ymd"));
初始化YOUT蘭特與功能你的一天種子:
srand((int)$seed);
新的數組索引將是:
$random_array_index = $rand() % $array_size;
我編輯的問題,因爲它是不明確的。 array_rand不接受種子作爲輸入。 – fawzib 2013-03-08 15:17:20
您不需要獲取隨機數組,而是一張圖片。我reedited答案和功能給這個指數。 G_G也是個好主意,因爲它的數學基礎是一樣的。 – Voitcus 2013-03-08 15:21:13
警告!你的代碼有一個嚴重的錯誤!如果圖像的數量(數組長度)大於給定的$ year * $ month * $ day(可能是這種情況!),您的代碼將最終只選擇一小部分圖像。 – 2013-03-08 15:57:36