您当前的位置:首页 > 互联网教程

php中怎样从一个数组中随机取一个元素出来呢

发布时间:2025-05-20 15:25:27    发布人:远客网络

php中怎样从一个数组中随机取一个元素出来呢

一、php中怎样从一个数组中随机取一个元素出来呢

它的用法也很简单:array_rand($arr[,$num])$arr==用来取元素的数组$num==随机取下标的个数其中第二个参数$num是可选的,默认为1。注意:它的返回值在第二个参数大于 1的时候是一个数组;当第二个参数不设或者传值 1的时候是一个下标。简单的示例代码如下:1、第二个参数不传值的情况;$arr= Array('a','b');$rndKey= array_rand($arr);echo$arr[$rndKey];//输出 a或者 b2、第二个参数传值大于 1的情况;$arr= Array('a','b','c','d');$rndKey= array_rand($arr, 2);print_r($rndKey]);//输出一个随机key的数组

二、用php随机生成不重复的数字

php基础教程:用php随机生成不重复的数字。?php$num= 3;$start= 1;$end= 5;$connt= 0;while($connt$num){$a[]=rand($start,$end);//产生随机数$ary=array_unique($a);$connt=count($ary);}foreach($ary as$key=$value){echo$value."br";}? rand生成随机数字,为了保证不重复用了array_unique函数,提取数组中不重复的数字。大家再看下,如果这样写:?php$num= 3;$start= 1;$end= 5;$connt= 0;while($connt$num){$a[]=rand($start,$end);//产生随机数$ary=array_unique($a);$connt++;}foreach($ary as$key=$value){echo$value."br";}?会出现什么情况?因为rand函数可能产生重复的数,比如随机产生了三个数1,2,2,那么通过array_unique函数只提取1,2两个数,则会只生成随机的两位数。所以本代码关键部分在于:条件语句while以及$connt=count($ary)的使用,只有当array_unique提取了不重复的三位数才结束,最终得到随机的数字。大家如果想得到随机的几位数字只要修改$num,修改取值范围只要修改$start和$end的数值。

三、为什么php会报错:未定义的函数

Fatal error: Call to undefined function(a) in(b) on line(c)

该错误报告表示你正企图调用未经定义的函数(function),其中

c----企图调用未定义函数的行号。

d----第二次定义该函数时的行号。

原因1:你的确没有声明过该函数。例如,直接调用下面的函数

myFunction();//这里根本就没有这个函数

Fatalerror:CalltoundefinedfunctionmyFunction()in(path)on line1

仔细检测你的程序中是否声明过该函数。

原因2:你在函数声明时用的名称和你在调用时用的名称不相同,例如

functionmyFunction(){// do something}myFuntion();//这里少写了一个字母C

解决:这是很多初学者最容易犯的一个错误。有时候因为少写,或者多写,写错一个字母而导致很长时间都检查不出来。

原因3:你在老版本的PHP下调用新版本的PHP内置函数而产生的错误。因为你的老版本中这个PHP内置函数根本就不存在。例如,你在PHP老版本中调用mime_content_type()

Fatalerror:Calltoundefinedfunctionmime_content_type()

解决:翻开PHP手册仔细核对你所使用的内置函数到底适用于PHP的哪些版本。在PHP手册当中对每一个内置函数都注明了详细的版本限制。例如(PHP 4>= 4.3.0, PHP 5).所以,解决办法就是升级你的PHP版本,或者改换同类型的其他内置函数。

原因4:你对该函数的调用代码,写在了与函数声明不同的文件中。例如,你在a.php文件中写了这样的代码

functionmyFunction(){// do something}

解决:这种情况一般发生在PHP初学者身上,他们在调用函数时却忘了PHP不会自动的进行文件关联或引用。也就是说上面的情况中a.php与b.php根本就不会产生任何关系。这个时候你需要使用include()之类的函数将两者关联起来。

原因5:你对该函数的调用代码,写在了与函数声明不同的文件中,你也引入了该文件。但是你的函数调用代码位于引入文件代码之前。例如,你在a.php执行函数调用,而在b.php中声明函数。

myFunction();include('b.php');

functionmyFunction(){echo'123';}

解决:像上面的代码这样,在执行时就会报错。因为PHP在执行函数调用时找不到该函数的声明。所以,绝对不要把函数的调用写在函数声明文件被引入之前。当然,如果你是在同一个php文件当中,你完全可以把调用函数写在函数声明之前。

原因6:你连续两次使用相同名称来定义一个函数,例如

Fatalerror:Cannotredeclare myfunction()(previously declaredin(path):2)in(path)on line1

找到已经声明过的函数,看看是什么需要导致你再次定义了它。如果只是单纯的忘记之前已经定义过,那么将其中一个声明删除掉就是。当然,你的情况可能给复杂。比如你的脚本文件排列异常混乱,并且你可能使用了大量的include()之类的函数,这将导致你很难从混乱的代码当中理清思路。