作者manutd4913 (manutd)
看板PHP
標題[請益]array_rand函式的使用限制
時間Mon Jan 27 21:50:26 2014
不好意思,在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
2F:→ alog:array_rand 這個 function 在 php 5.2.10 之後有不同行為 01/27 21:58
3F:→ alog:建議重寫 01/27 21:58
4F:→ manutd4913:感謝你的回覆,找好久找不到答案! 01/27 22:02
5F:→ alog:當這種鬼打牆的情況,建議先找 php 官網 01/27 22:03
6F:→ alog:找 changelog or migration 01/27 22:04
7F:→ alog:裡面會告訴你改版後,改了哪些東西,目前是 5.4 為穩定版 01/27 22:04
8F:→ manutd4913:感謝 01/27 22:07
9F:推 Huangs:這裡應該用shuffle 01/30 16:26