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'); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行截图:
说明:子串查询函数主要是添加不同的参数来达到对应的目的,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); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行截图:
说明:字符串查找并代替函数: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); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行截图:
说明:以上主要是运用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()函数等。