php 数组字符串搜索array_search技巧

php 搜索数组字符串我们一般会用到array_search和in_array两个函数

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。

但是array_search一般用到搜索一个数组中符合要求的第一个字符串。如果搜索的字符串在数组中含有多个,使用array_search的话,是 不行的。这时,我们使用array_keys()函数,实现搜索的字符串在数组中含有多个,

看一下如下例子:

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$a=array_search( "blue",$array); //将输出$a=0;
$b=array_search( 'red',$array); //将只会输出$b=1;
$p = array_keys($array, 'red');//搜索的字符串在数组中含有多个
if(is_array($p)) {
  foreach($p as $v) {
    echo $val."出现在".$v . " ";
   }
}else {
  echo $val."出现在".array_search($val, $array)." ";
}

例二:

$array = array(4,5,7,8,9,10);
$found = array_search(8, $array); //调用array_search函数并输出查找结果
if($found){ //如果找到输出键
echo "已找到,键为".$found;
}else{ //如果没有找到输出错误信息
echo "没有找到";
}

下面我们来看看in_array函数

采用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;
}

以上就是本文的全部内容了,希望大家能够喜欢

(0)

相关推荐

  • PHP函数in_array()使用详解

    PHP有一个系统函数is_array()可以判断一个值是否在数组中. 语法如下: 复制代码 代码如下: in_array(value,array,type) return boolen 参数说明: value :要搜索的值 array : 被搜索的数组 type : 类型,true全等 ,false非全等(默认) 示例一:普通使用 代码: 复制代码 代码如下: $str = 1;   $arr = array(1,3,5,7,9);   $boolvalue = in_array($str,$a

  • php数组函数序列之in_array() 查找数组值是否存在

    in_array() 定义和用法 in_array() 函数在数组中搜索给定的值. 语法 in_array(value,array,type) 参数 描述 value 必需.规定要在数组搜索的值. array 必需.规定要搜索的数组. type 可选.如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同. 说明 如果给定的值 value 存在于数组 array 中则返回 true.如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true.

  • php数组函数序列之in_array() - 查找数组中是否存在指定值

    in_array()定义和用法 in_array() 函数查找数组中是否存在指定值. 语法 in_array(value,array,type)参数 描述 value 必需.规定要在数组搜索的值. array 必需.规定要搜索的数组. type 可选.如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同. 说明 如果给定的值 value 存在于数组 array 中则返回 true.如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true.

  • php数组查找函数in_array()、array_search()、array_key_exists()使用实例

    php在数组中查找指定值是否存在的方法有很多,记得很久以前我一直都是傻傻的用foreach循环来查找的,下面我主要分享一下用php内置的三个数组函数来查找指定值是否存在于数组中,这三个数组分别是 in_array(),array_search(),array_key_exists(). 首先分别介绍一下各自的定义与作用 in_array(value,array,type) 该函数的作用是在数组array中搜索指定的value值,type是可选参数,如果设置该参数为 true ,则检查搜索的数据与

  • php in_array 函数使用说明与in_array需要注意的地方说明

    in_array (PHP 4, PHP 5) in_array - 检查数组中是否存在某个值 说明 复制代码 代码如下: bool in_array ( mixed $needle , array $haystack [, bool $strict ] ) 在 haystack 中搜索 needle ,如果找到则返回 TRUE,否则返回 FALSE. 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同.

  • php数组函数序列之array_search()- 按元素值返回键名

    array_search()定义和用法 array_search() 函数与 in_array() 一样,在数组中查找一个键值.如果找到了该值,匹配元素的键名会被返回.如果没找到,则返回 false. 在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false. 如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名. 语法 array_search(value,array,strict)参数 描述 value 必需.规定在数组中搜索

  • php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比

    判断某字符是否包含与某于数组中,方法有很多,刚学习php的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大问题的.但就性能来说,这种方法不是最好的方法,下面笔者就 foreach,in_array() array_search 这三种方法来比较这三种方法在性能表现上的差异. <?php $runtime= new runtime; $runtime->start(); $a = 'k'; $b = array('a','b','c','d','e','f','

  • php 数组字符串搜索array_search技巧

    php 搜索数组字符串我们一般会用到array_search和in_array两个函数 array_search() 函数与 in_array() 一样,在数组中查找一个键值.如果找到了该值,匹配元素的键名会被返回.如果没找到,则返回 false. 但是array_search一般用到搜索一个数组中符合要求的第一个字符串.如果搜索的字符串在数组中含有多个,使用array_search的话,是 不行的.这时,我们使用array_keys()函数,实现搜索的字符串在数组中含有多个, 看一下如下例子:

  • PHP 在数组中搜索给定的简单实例 array_search 函数

    array_search() PHP array_search() 函数用于在数组中搜索给定的值,如果成功则返回相应的键名,否则返回 FALSE . 语法: mixed array_search( mixed needle, array array [, bool strict] )参数说明: 参数 说明 needle 需要在数组中搜索的值,如果是字符串,则区分大小写 array 需要检索的数组 strict 可选,如果设置为 TRUE ,则还会对 needle 与 array 中的值类型进行检

  • 基于php常用函数总结(数组,字符串,时间,文件操作)

    数组:[重点1]implode(分隔,arr) 把数组值数据按指定字符连接起来例如:$arr=array('1','2','3','4');$str=implode('-',$arr);explode([分隔],arr)按指定规则对一个字符串进行分割,返回值为数组 别名joinarray_merge()合并一个或多个数组array_combine(array keys, array values) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值例如:$a = array('gre

  • 正则表达式截取字符串的方法技巧

    有这么一段字符串: [数字]字符串 结果 取  a=数字 b=字符串 截取方法1: int a = Convert.ToInt32(txt1.Text.Trim().Replace('[', ']').Split(']')[1]); string b = txt1.Text.Trim().Replace('[', ']').Split(']')[2]; 截取方法2: string str = "[数字]字符串"; Regex reg = new Regex(@" ([^]+)

  • Javascript字符串拼接小技巧(推荐)

    在Javascript中经常会遇到字符串的问题,但是如果要拼接的字符串过长就比较麻烦了. 如果是在一行的,可读性差不说,如果要换行的,会直接报错. 在此介绍几种Javascript拼接字符串的技巧. 字符串相加(+) var items = '<li class="details">' + '<span>Hello world</span>' + '</li>'; 利用反斜线拼接字符串 var items = '<li class=

  • Linux Shell 数组建立及使用技巧

    linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 一对括号表示是数组,数组元素用"空格"符号分割开. 2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${ #a[@]} 用${#数组名

  • Android解析json数组对象的方法及Apply和数组的三个技巧

    json是种常用的数据传输格式,在android开发中,如何借助java语言实现对json数组对象的解析呢,请参阅下面的关键代码: import org.json.JSONArray; import org.json.JSONObject; //jsonData的数据格式:[{ "id": "27JpL~jd99w9nM01c000qc", "version": "abc" },{ "id": "

  • 一个JavaScript递归实现反转数组字符串的实例

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-递归实现反转数组字符串</title> <script> var func = function(x,indx,str){ return

  • Python中字符串的处理技巧分享

    一.如何拆分含有多种分隔符的字符串? 实际案例 我们要把某个字符串依据分隔符号拆分不同的字符段,该字符串包含多种不同的分隔符,例如: s = 'asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|asd' 其中<,>,<;>,<|>,<\t>都是分隔符,如何处理? 解决方案 连续使用split()方法,每次处理一种分隔符 # 使用Python2 def mySplit(s,ds): res = [s] for d

随机推荐