in_array 检查数组中是否存在某个值
bool in_array($mixed $needle,array $haystack[,bool$strict = false]);在haystack中搜索needle,如果没有设置strict则使用宽松的比较,成功返回true
$smallPRimes = array(2,3,5,7,11,12,13,17,19,29);$var = 19;if(in_array($var,$smallPrimes)){ echo "{$var} is a small prime munber"."<br>";}//19 is a small prime munber$var1 = "19 bridge rd,richmond";//严格检查类型,不输出信息if(in_array($var1,$smallPrimes,true)){ echo "{$var1} is a small prime munber"."<br>";}//不检查类型if(in_array($var1,$smallPrimes)){ echo "{$var1} is a prime munber"."<br>";}//输出19 is a small prime munberarray_search 在数组中搜索给定的值,如果成功则返回相应的键名
mixed array_search(mixed$needle, array$haystack [,bool$strict = false]);array_search()的运作方式与in_array()基本相同,只是与needle相对应的键名也会被返回,不只是返回布尔值true
$measure = array( 'inch' => 1, 'foot' => 12, 'yard' => 36);var_dump(array_search(12,$measure));//输出 string(4) "foot" $units = array('inch','centimeter','chain','furlong');print array_search('inch',$units);//输出0在使用array_search函数时,成功则返回符合条件的值,失败时返回false表示事情没有办成功。如果返回值被当作逻辑判断使用,例如用在其他表达式或逻辑判断参数时,原本合格的结果可能会被转换成false 如果函数的返回值是0、0.0、空字符串或者空数组,而且有需要布尔值,php会自动把结果类型转换为false
//使用恒等运算符===才是检查函数array_search()返回结果的正确方式$index = array_search('inch',$units);if($index === false){ echo "unknow unit:inch";}else{ echo "index = {$index}";}//输出:index = 0新闻热点
疑难解答