PHP隨機產生隨機數目的值
昨天剛接觸PHP,想做個這樣的需求:通過一個PHP代碼,可以隨機產生隨機數目的值,插入到資料庫中,結構如下:
表名:test
欄位名: 使用者id aihao
值: 1 吃飯
值: 20 吃飯,睡覺
值: 35 吃飯,睡覺,打豆豆
值: 203 睡覺,打豆豆
其中使用者ID是已經存在的,無需修改。愛好的值是需要隨機賦予的。我寫的代碼是這樣的:
for($i=0;$i<4;$i++){
$aihao=array("吃飯","睡覺","打豆豆");
$rn=rand(1,3);
$result=array_rand($aihao,count($rn));
$sql="replace into test(aihao) values ($result)";
$re=mysql_query($sql);
}
運行結果為固定的1位元字,並不是array中的隨機數目的元素名,請各位幫看看具體是哪裡有問題了。
因為接觸PHP還不到2天,上述代碼都是百度出來的,我覺得問題可能出在對array_rand函數理解不夠上面,根據PHP協助文檔的內容,實在看不出來該怎麼改了,希望大家能指點指點,謝謝。
------解決方案--------------------
1.$aihao這個變數既然不被修改,應該定義在迴圈之外
2.查了下手冊,array_rand返回的是隨機鍵而不是值,你定義$aihao沒有指定鍵,那就是0,1,2了
3.$rn本身就是想要一個隨機個數,為什麼還要加count呢?
4.$result在多個值的情況下是數組,不能直接寫入sql語句
$aihao = array("吃飯", "睡覺", "打豆豆");
$aihao = array_flip($aihao);
for ($i = 0; $i < 4; $i++) {
$rn = rand(1, 3);
$result = array_rand($aihao, $rn);
$result = is_array($result) ? implode(',', $result) : $result;
echo $result . '
';
}