想法是發佈最大值和最小值,然後生成兩者之間的隨機數。rand()函數不能按預期工作(嵌套在foreach()中)?
例如,$mins = array(30,40,50,60)
和$maxs = array(40,50,60,70)
,然後我的代碼:
foreach($mins as $minkey => $maxval) {
foreach($maxs as $maxkey => $maxval) {
$hits[$maxkey] = rand($minval,$maxval);
}
}
如果我再var_dump($mins)
,var_dump($maxs)
和var_dump($hits)
,我得到:
array(4) { [1]=> string(2) "30" [2]=> string(2) "40" [3]=> string(2) "50" [4]=> string(2) "60" } array(4) { [1]=> string(2) "40" [2]=> string(2) "50" [3]=> string(2) "60" [4]=> string(2) "70" } array(4) { [1]=> int(27) [2]=> int(36) [3]=> int(19) [4]=> int(41) }
我認爲事實$maxs
和$mins
包含字符串值,而包含整數的$hits
(即rand()
需要整數輸入?)可能是t他問題,所以我更新了我的環路變成:
foreach($mins as $minkey => $minval) {
foreach($maxs as $maxkey => $maxval) {
$minval = (int)$minval;
$maxval = (int)$maxval;
$hits[$maxkey] = rand($minval,$maxval);
}
}
但在var_dump($mins)
,var_dump($maxs)
和var_dump($hits)
,這是甩:
array(4) { [1]=> string(2) "30" [2]=> string(2) "40" [3]=> string(2) "50" [4]=> string(2) "60" } array(4) { [1]=> string(2) "40" [2]=> string(2) "50" [3]=> string(2) "60" [4]=> string(2) "70" } array(4) { [1]=> int(0) [2]=> int(47) [3]=> int(0) [4]=> int(55) }
沒有人有任何想法,爲什麼這工作不正常?
任何想法/答案/評論將非常感謝:)!
此代碼運行正常見php error reporting(見http://ideone.com/0xD5l)。其他地方一定有一個錯誤。 –
奧利,20和13不是在30-40和40-50之間? – Avicinnian
啊,我看你剛纔編輯了你的問題。所以讓我重述一下。此代碼完全按照我的預期運行。 –