1、以下代码主要介绍了substr(),strstr(),strpos(),子串查询的三个常用函:
实例
// 1. substr($str, $offset, $length):只知道要获取子串的位置,精确查询
$str = 'My name is coolper';
// substr(), 索引从11开始的剩余内容,根据位置查询
echo substr($str , 11),'
';
echo substr($str, 11,4),'
';
echo substr($str, -3),'
';//负数代表从尾部取3个数
//2.strstr($str1, $str2,bool)
$email = 'example@php.cn';
echo strstr($email, '@'),'
';//只有两个参数,查询@是否存在,默认返回@以及后边的内容
echo strstr($email, '@',true),'
';//传入第三个参数: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():
实例
// 字符串查找并替换的二个函数
$str = 'My name is Mr. coolper';
//1.str_replace();
echo str_replace('Mr.', 'Mis.', $str),'
';//替换
echo str_replace('Mr.', '', $str),'
'; //删除式替换
//一次性替换多个内容
echo str_replace(['My','name','Mr.'], '你好', $str),'
';
echo str_replace(['My','name','is'], ['She','age','are'], $str),'
';
// str_ireplace(): 忽略查找字符的大小写的替换
echo str_ireplace('mr.', 'Mis.', $str),'
';//替换
echo '
';
// 2.substr_replace()
echo substr_replace($str,'我学习的是php语言', 0),'
';
echo substr_replace($str,'我学习的是php语言',0,strlen($str)), '
';
//从第11个开始替换0个字符相当于插入
echo substr_replace($str, 'PHP ',11,0),'
';
//从第11个开始替换掉3个字符
echo substr_replace($str, 'mysql ',11,3),'
';
// 删除式替换
echo substr_replace($str, '',3,4);
?>
运行实例 »
点击 "运行实例" 按钮查看在线实例
运行截图:
说明:字符串查找并代替函数:1.str_replace()直接选择字符替换,其中str_ireplace()替换忽略查找字符的大小写
2.substr_replace()可以从某个位置开始查找并替换。
3、以下代码介绍了自定义二维数组排序的方法,以及根据键名字母进行排序:
实例
//usort 二维数组的排序
$arr = array(
['name' => 'wangyi','age' => 25 ,'sex' => 'male'],
['name' => 'wanger','age' => 18 ,'sex' => 'female'],
['name' => 'wangsan','age' => 20 ,'sex' => 'male'],
);
echo '
';
echo '排序前:',var_export($arr),'
';
usort($arr, function($m,$n){
return strcmp($m['age'], $n['age']);
});
echo '排序后:',var_export($arr),'
';
//使用自定义的回调函数,对键名进行排序
$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),'
';
// 根据键名的第三个字母进行排序
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()函数等。