今天刚给PHP博客添加了一个随机产生文章功能,用到了PHP函数中的array_rand()功能,array_rand(array,number),有两个参数,其中array参数是代表着你所要获取某个数组,number可选参数,第二个参数用来确定要选出几个元素,默认是 1。。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。(记住:理解一下加粗那部分意思),返回的是一个数组键名,不是数组里面的对应值,我刚开始用的时候以为是直接返回一个数值值,老取不到值。我具体用法是这样:
PHP代码
01........
02........
03.while($res=mysql_fetch_object($rsql))
04. {
05. $arr[$i]['id']=$res->art_id;
06. $arr[$i]['url']= siteurl."art-php-"."$res->art_id".'.html';
07. $arr[$i]['title']= $res->art_title;
08. $i++;
09. }
10. $arr1=array_rand($arr,10);
11. $arr2=array();
12. foreach($arr1 as $key=>$value)
13. {
14. $arr2[$key]['id']=$arr[$value]['id'];
15. $arr2[$key]['url']=$arr[$value]['url'];
16. $arr2[$key]['title']=$arr[$value]['title'];
17. }
18.
19. return $arr2;
下面解释一下我写的代码:
$arr代表我已经获取到的数组, $arr1返回的是随机10个数组键名,再通过foreach根据返回键重新组合数组。