2015-10-19 83 views
1

我想concate一個PHP範圍如此說來, 代碼看起來像這樣至今:PHP的日曆周區間

$var1 = $date->format('W'); 

if($var2 > 52) { 

    $var2 = $var2 % 52; 

} 

    $numbers = range($var1,$var2); 

    shuffle($numbers); 

    foreach($users as $user) { 

     $uniqueRand = array_pop($numbers); 
     ... 
    } 

所以我想給我的數據庫中的用戶的隨機數/ calenderweek, 介於當前的日曆周和當前的日曆周+15之間。

我檢查,如果VAR2的壓延周高於52,如果是高於壓延周從1開始,在我的情況壓延周從43 - 6

的問題是現在範圍從43到6,但我希望範圍從43到52,而不是從1到6,有沒有人有這個問題的一個很好的解決方案。

+0

我想你應該初始化到1,而不是採取國防部的價值。 –

+0

出於興趣:這個問題似乎與[this one]很相似(http://stackoverflow.com/questions/33212325/php-random-fill-range)。有某種聯繫嗎? – mermshaus

回答

0

你覺得太複雜了。讓您的隨機範圍來看只是一個普通的序列(在這種情況下,從0至14),之後做模量:

$var1 = $date->format('W'); 
$numbers = range(0,14); 
shuffle($numbers); 
foreach($users as $user) { 
    $uniqueRand = (array_pop($numbers)+$var1) % 52 + 1; 
    ... 
} 
+0

好!工作! 你可以解釋一下解決方案 – Slark

+0

@slark編輯我的答案。希望這是足夠的。 – syck