posir 发表于 2015-8-27 07:51:50

php判断数组元素中是否存在某个字符串的方法

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中第一种和第二种的数据结构类似,都是关联数组。
页: [1]
查看完整版本: php判断数组元素中是否存在某个字符串的方法