php判断数组元素中是否存在某个字符串的方法
方法一:采用in_array(value,array,type)
type可选。如果设置该参数为true,则检查搜索的数据与数组的值的类型是否相同。
$arr=array('可以','如何','方法','知道','沒有','不要'); //in_array(value,array,type) $isin=in_array("如何2",$arr); if($isin){ echo"in====".$isin; }else{ echo"out====".$isin; }
方法二:
array_key_exists'array_key_exists()函数判断某个数组中是否存在指定的key,如果该key存在,则返回true,否则返回false。array_key_exists(key,array
方法三:
array_search()函数与in_array()一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回false。array_search(value,array,strict),当数据量比较大的时候,用array_key_exists比较合适,但占用的内存比较大,
数组结构是:array(1,2,3,..)和array(1=>true,2=>false,..),内存使用比值为1:2。
具体跟内部实现有关系,在php中第一种和第二种的数据结构类似,都是关联数组。
其它补充:
查找一个元素是否在数组中,一共有下面三种做法:
in_array '函数在数组中搜索给定的值。in_array(value,array,type)type可选。如果设置该参数为true,则检查搜索的数据与数组的值的类型是否相同。
array_key_exists'array_key_exists()函数判断某个数组中是否存在指定的key,如果该key存在,则返回true,否则返回false。
array_key_exists(key,array)
array_search'array_search()函数与in_array()一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回false。
array_search(value,array,strict)
从这里来看,在数据量不大的时候,比如小于1000,查找用哪一种都行,都不会成为瓶颈;
当数据量比较大的时候,用array_key_exists比较合适。
当然这里array_key_exists占用的内存比较大,经测算
数组结构是:array(1,2,3,..)和array(1=>true,2=>false,..)
他们内存使用比值为1:2;
这个和内部实现有关系,实际上在php中第一种和第二种的数据结构类似,都是关联数组。