博客列表 >三个最基本最常用的子串查询函数substr(),strstr(),strpos()实例和字符串查找并替换的二个函数str_replace(),substr_replace()实例以及自定义二维数组的排序usort()实例--2018年8月29日16时43分

三个最基本最常用的子串查询函数substr(),strstr(),strpos()实例和字符串查找并替换的二个函数str_replace(),substr_replace()实例以及自定义二维数组的排序usort()实例--2018年8月29日16时43分

coolperJie
coolperJie原创
2018年08月29日 17:48:001595浏览

1、以下代码主要介绍了substr(),strstr(),strpos(),子串查询的三个常用函:

实例

<?php
// 1. substr($str, $offset, $length):只知道要获取子串的位置,精确查询
$str = 'My name is coolper';
// substr(), 索引从11开始的剩余内容,根据位置查询
echo substr($str , 11),'<br>';
echo substr($str, 11,4),'<br>';
echo substr($str, -3),'<br>';//负数代表从尾部取3个数

//2.strstr($str1, $str2,bool)
$email = 'example@php.cn';
echo strstr($email, '@'),'<br>';//只有两个参数,查询@是否存在,默认返回@以及后边的内容
echo strstr($email, '@',true),'<br>';//传入第三个参数:true,仅返回@符之前的内容(不包含@)

// 3.strpos($str1, $str2, $start): 根据内容查询,返回字符串首次出现的位置
echo strpos($str, 'is');
 
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行截图:

demo1.png

说明:子串查询函数主要是添加不同的参数来达到对应的目的,1.substr($str, $offset, $length):只知道要获取子串的位置,精确查询,当第三个参数为负值时,代表从尾部开始取对应的几个值;2.strstr($str1, $str2,bool):当默认有两个参数时,代表从所选字符的后边取全部的内容(包括当前所选),当添加第三个bool参数true时,代表从所选字符的前边取全部的内容(不包括当前所选);3.strpos($str1, $str2, $start): 根据内容查询,返回字符串首次出现的位置。

2、以下代码主要介绍了字符串查找并替换的二个函数,str_replace()和substr_replace():

实例

<?php
// 字符串查找并替换的二个函数
$str = 'My name is Mr. coolper';
//1.str_replace();
echo str_replace('Mr.', 'Mis.', $str),'<br>';//替换
echo str_replace('Mr.', '', $str),'<br>'; //删除式替换
//一次性替换多个内容
echo str_replace(['My','name','Mr.'], '你好', $str),'<br>';
echo str_replace(['My','name','is'], ['She','age','are'], $str),'<br>';
// str_ireplace(): 忽略查找字符的大小写的替换
echo str_ireplace('mr.', 'Mis.', $str),'<br>';//替换
echo '<hr>';
// 2.substr_replace()
echo substr_replace($str,'我学习的是php语言', 0),'<br>';
echo substr_replace($str,'我学习的是php语言',0,strlen($str)), '<br>';
//从第11个开始替换0个字符相当于插入
echo substr_replace($str, 'PHP  ',11,0),'<br>';
//从第11个开始替换掉3个字符
echo substr_replace($str, 'mysql  ',11,3),'<br>';
// 删除式替换
echo substr_replace($str, '',3,4);
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行截图:

demo2.png

说明:字符串查找并代替函数:1.str_replace()直接选择字符替换,其中str_ireplace()替换忽略查找字符的大小写

2.substr_replace()可以从某个位置开始查找并替换。

3、以下代码介绍了自定义二维数组排序的方法,以及根据键名字母进行排序:

实例

<?php
//usort 二维数组的排序
$arr = array(
 ['name' => 'wangyi','age' => 25 ,'sex' => 'male'],
 ['name' => 'wanger','age' => 18 ,'sex' => 'female'],
 ['name' => 'wangsan','age' => 20 ,'sex' => 'male'],
);
echo '<pre>';
echo '排序前:',var_export($arr),'<br>';
usort($arr, function($m,$n){
 return strcmp($m['age'], $n['age']);
});
echo '排序后:',var_export($arr),'<hr>';

//使用自定义的回调函数,对键名进行排序
$course = ['chinese' => '汉语','english'=>'英语','math'=>'数学'];
// 根据键名的第一个字母进行排序
uksort($course, function($m,$n){
 $a = substr($m, 0, 1);
 $b = substr($n, 0, 1);
 return strcmp($a, $b);
});
echo var_export($course),'<br>';
// 根据键名的第三个字母进行排序
uksort($course, function($m,$n){
 $a = substr($m, 2, 1);
 $b = substr($n, 2, 1);
 return strcmp($a, $b);
});
echo var_export($course);
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行截图:

demo3.png

说明:以上主要是运用usort()方法进行了数组排序,核心在于匿名函数级strcmp()函数的使用。

总结:今天主要学习及掌握了以下知识:

(1)子串查询的三个常用函:

        1.substr($str, $offset, $length):只知道要获取子串的位置,精确查询,当第三个参数为负值时,代表从尾部开始取对应的几个值;

        2.strstr($str1, $str2,bool):当默认有两个参数时,代表从所选字符的后边取全部的内容(包括当前所选),当添加第三个bool参数true时,代表从所选字符的前边取全部的内容(不包括当前所选);

        3.strpos($str1, $str2, $start): 根据内容查询,返回字符串首次出现的位置。

(2)字符串查找并替换的二个函数:

    1.str_replace()直接选择字符替换可以替换单个字符和多个字符(需要替换字符数组个数与被替换的字符数组个数相同),其中str_ireplace()替换忽略查找字符的大小写;

    2.substr_replace()可以从某个位置开始查找并替换。

(3)最后运用usort()函数实现了二维数组的排序,以及根据键名的第n个字母进行排序,其中运用到了子串查询的函数以及匿名函数和strcmp()函数等。

 

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议