[請益]array_rand函式的使用限制

看板PHP作者 (manutd)時間11年前 (2014/01/27 21:50), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
不好意思,在php方面還是新手,第一次在版上發文, 如有違反版規,還請多多見諒。 今天將以往在用電腦A上的程式碼放到另一台電腦B執行, 結果發現有一段程式碼的結果一直無法正確執行, 後來找了半天發現是array_rand()這個function一直很怪。 我又另外將那段程式碼重新寫成一個簡單的程式碼如下: <?php $total_num=100; $random = array_rand(range(1, $total_num), $total_num); foreach($random as $value){ //echo $value . "<br />"; @$random[$b]=$value; } for($x=0;$x<$total_num;$x++) { echo $random[$x]."</br>"; } ?> 其中奇怪的是電腦A可以正確亂數跑(ex: 69,97,55....) ,但電腦B卻是按照順序從0一直跑到99(ex:0,1,2,3,4,..99)。 想請問各位大大可能發生錯誤的原因? ps. (1)兩台電腦的程式碼完全相同 (2)apache版本相同 (3)電腦A是32bits WIN7,電腦B是64bits WIN7 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.39.1


01/27 21:58, , 2F
array_rand 這個 function 在 php 5.2.10 之後有不同行為
01/27 21:58, 2F

01/27 21:58, , 3F
建議重寫
01/27 21:58, 3F

01/27 22:02, , 4F
感謝你的回覆,找好久找不到答案!
01/27 22:02, 4F

01/27 22:03, , 5F
當這種鬼打牆的情況,建議先找 php 官網
01/27 22:03, 5F

01/27 22:04, , 6F
找 changelog or migration
01/27 22:04, 6F

01/27 22:04, , 7F
裡面會告訴你改版後,改了哪些東西,目前是 5.4 為穩定版
01/27 22:04, 7F

01/27 22:07, , 8F
感謝
01/27 22:07, 8F

01/30 16:26, , 9F
這裡應該用shuffle
01/30 16:26, 9F
文章代碼(AID): #1IvcGeTm (PHP)
文章代碼(AID): #1IvcGeTm (PHP)