首页 > 后端开发 > PHP问题 > PHP中怎样去定位字符串与数组中的元素?

PHP中怎样去定位字符串与数组中的元素?

WBOY
发布: 2023-03-13 17:58:01
原创
1692 人浏览过

在之前的文章《带你快速掌握PHP字符串的替换(实例详解)》中我们详细的介绍了PHP中字符床替换的相关知识,本篇文章我们来看一下PHP中字符串定位的相关知识,希望对大家有帮助!

PHP中怎样去定位字符串与数组中的元素?

在前一篇文章中我们了解了PHP中的字符串想要完成替换字符的操作需要使用到PHP提供的substr_replace 函数与 str_replace 函数,这样就能够解决PHP替换的问题,同样的在PHP的开发过程中字符串的定位也是很常见的。

在PHP中想要搜索字符串在另一个字符串中是否出现,可以通过PHP中的strstr函数,接下来我们就来看一下怎样去定位查找一个字符串。

<strong><span style="font-size: 20px;">strstr</span></strong>函数-定位字符串元素

在PHP中可以通过strstr函数来搜索一个字符串在另一个字符串中的第一次出现,strstr函数的基本语法格式如下:

strstr(string,search,before_search)
登录后复制

其中需要注意的是:参数string表示的是需要搜索的字符串,参数search表示的是被搜索的字符串,如果该参数不是一个字符串那么这个参数就会被转化为整型并且作为字符的序号来使用,参数before_search默认的是false,如果设置为true的话,返回的结果就是参数search第一次出现之前的那部分字符串。

该函数的返回结果是从匹配点开始的字符串的剩余部分,如果未找到需要搜索的字符串,那么返回的结果就是flase。

接下来我们通过示例来看一下strstr函数的使用,示例如下:

<?php
$email  = &#39;123456789123456789@gamil.com&#39;;
echo $email. &#39;<br/>&#39;;//正常输出
$domain = strstr($email, &#39;@&#39;);//通过strstr函数来搜索@出现的第一次位置
echo $domain;
?>
登录后复制

输出结果:

1104.13.png

在上述示例中,通过strstr函数返回的结果就是我们搜索的字符串之后剩余的部分。我们通过strstr函数完成了定位字符串的目的。

提到定位匹配在PHP中就不得不提到正则表达式了,在上文中我们通过strstr函数完成了定位字符串,在PHP中还有一个函数是preg_grep()函数,接下来我们一起来看一下它的用法。

<strong><span style="max-width:90%">preg_grep</span></strong>()函数-定位数组元素

在PHP中提到搜索定位,绕不过去的肯定就是正则表达式了,PHP就提供了 preg_grep() 通过正则表达式来进行匹配数组元素。

preg_grep()函数的基本语法格式如下:

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )
登录后复制

其中需要注意的是:参数pattern是用正则表达式来定义的,也就是要搜索的模式,参数input表示的是要搜索的数组,参数flags一般设置为PREG_GREP_INVERT表示的是这时候的函数返回的结果是不匹配的 $pattern 元素所组成的数组。

接下来我们通过示例来看一下preg_grep()函数的使用,示例如下:

<?php
$pattern = &#39;/[0-9]/&#39;;
$subject = array(&#39;weuy&#39;,&#39;r3ui&#39;,&#39;76as83&#39;,&#39;s&#39;,&#39;0ck9&#39;);
$arr = preg_grep($pattern,$subject);
show($arr);
function show($var){
    if(empty($var)){
        echo &#39;null&#39;;
    }elseif(is_array($var)||is_object($var)){
        echo &#39;
&#39;;
        print_r($var);
        echo &#39;
&#39;;
    }else{
        echo $var;
    }
}
echo &#39;<br/>&#39;;
$arr1 = preg_grep($pattern,$subject,PREG_GREP_INVERT);
show($arr1);
function show1($var1){
    if(empty1($var1)){
        echo &#39;null&#39;;
    }elseif(is_array($var1)||is_object($var1)){
        echo &#39;
&#39;;
        print_r($var1);
        echo &#39;
&#39;;
    }else{
        echo $var1;
    }
}
?>
登录后复制

输出结果:

1104.14.png

通过上述示例我们可以匹配到数组元素,并且参数flags的值不同,preg_grep()函数返回的结果也不同。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上是PHP中怎样去定位字符串与数组中的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板