Heim  >  Artikel  >  Backend-Entwicklung  >  PHP随机生成随机数目的值解决思路

PHP随机生成随机数目的值解决思路

WBOY
WBOYOriginal
2016-06-13 12:03:27897Durchsuche

PHP随机生成随机数目的值
昨天刚接触PHP,想做个这样的需求:通过一个PHP代码,可以随机生成随机数目的值,插入到数据库中,结构如下:
表名:test
字段名: 用户id  aihao
值:         1             吃饭
值:         20           吃饭,睡觉
值:         35           吃饭,睡觉,打豆豆
值:         203         睡觉,打豆豆


其中用户ID是已经存在的,无需修改。爱好的值是需要随机赋予的。我写的代码是这样的:

<br />for($i=0;$i<4;$i++){<br /><br />	$aihao=array("吃饭","睡觉","打豆豆");<br /><br />	$rn=rand(1,3);<br /><br />	$result=array_rand($aihao,count($rn));<br /><br />$sql="replace into test(aihao) values ($result)";<br /><br />$re=mysql_query($sql);<br /><br /><br />}<br />

运行结果为固定的1位数字,并不是array中的随机数目的元素名,请各位帮看看具体是哪里有问题了。

因为接触PHP还不到2天,上述代码都是百度出来的,我觉得问题可能出在对array_rand函数理解不够上面,根据PHP帮助文档的内容,实在看不出来该怎么改了,希望大家能指点指点,谢谢。
------解决方案--------------------
1.$aihao这个变量既然不被修改,应该定义在循环之外
2.查了下手册,array_rand返回的是随机键而不是值,你定义$aihao没有指定键,那就是0,1,2了
3.$rn本身就是想要一个随机个数,为什么还要加count呢?
4.$result在多个值的情况下是数组,不能直接写入sql语句

<br /><?php<br /><br />$aihao = array("吃饭", "睡觉", "打豆豆");<br />$aihao = array_flip($aihao);<br /><br />for ($i = 0; $i < 4; $i++) {<br />    $rn = rand(1, 3);<br />    $result = array_rand($aihao, $rn);<br />    $result = is_array($result) ? implode(',', $result) : $result;<br />    echo $result . '<br />';<br />}<br />

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn