博客列表 >第十一课:字符串查询替换函数—2018年8月27日

第十一课:字符串查询替换函数—2018年8月27日

DDD大鱼
DDD大鱼原创
2018年08月28日 18:03:47876浏览

实例

通过字符串函数来查询和修改字符串,常用的字符串函数有:substr()精确查询    strstr()定位查询    strpos()字符串首次出现位置

<?php
//1.substr($str,$offset,$length):只知道要获取子串的位置,精确查询
$str = 'PHP is the best programming language';
$str1 = 'JAVA is the best language';

echo substr($str,11),'<br>';	//substr(),索引从11开始的剩余内容,根据位置查询
echo substr($str,11,4),'<br>';	//区间查询,索引11开始取4个
echo substr($str,-3),'<br>';	//索引从最后一个开始,取3个
echo substr($str,-3,4),'<br>';	//取负数开始时,不再有第三个参数

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

// strpos($str1,string,$start):根据内容查询,返回字符串首次出现的位置
echo strpos($str,'best');

运行实例 »

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

sttstr.png

总结:

1、substr($str,$offset,$length)通过位置,或区间精确查询,$offset可为负数(尾部开始)

2、strstr($str,'*')通过已知字符串中的字符来查找,并返回数值或内容

3、strpos($str,string)通过内容查询,返回字符串首次出现的位置


实例

字符串替换,str_replace()可以指定字符更换,也可以通过空字符串来删除

<meta charset="utf-8">
<?php
//str_repalce(), substr_replace

$str = 'PHP is the best programming language';

// 1.str_replace()
echo str_replace('PHP','JAVA',$str),'<br>';
//删除式替换
echo str_replace('the best','',$str),'<br>';
//一次性替换多个内容
echo str_replace(['PHP','best','the'],'老王',$str),'<br>';
echo str_replace(['PHP','best','the'],['JAVA','lonely','wow'],$str),'<br>';
// str_ireplace():忽略大小写的替换
echo str_ireplace('php','JAVA',$str),'<br>';
echo '<hr>';

// substr_replace()
echo substr_replace($str,'PHP是最好的编程语言',0),'<br>';
echo substr_replace($str,'PHP是最好的编程语言',0,strlen($str)),'<br>';

echo substr_replace($str,'PHP中文网',13,0),'<br>';
echo substr_replace($str, 'JAVA',13,3),'<br>';

// 删除式替换
echo substr_replace($str,'',6,3);

运行实例 »

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

8271.png


实例

<?php
header("content-type:text/html;charset=utf-8");
$stu1 = [
	['name'=>'张三','grade'=>99],
	['name'=>'李四','grade'=>50],
	['name'=>'王五','grade'=>70],
];

usort($stu1, function($m,$n){
	return strcmp($m['grade'],$n['grade']);
});
echo '<pre>',var_export($stu1,true),'<hr>';

$stu2 = [
	['name'=>'张三','grade'=>99],
	['name'=>'李四','grade'=>50],
	['name'=>'王五','grade'=>70],
];
usort($stu2, function($m,$n){
	$res = $m['grade'] - $n['grade'];
	switch ($res) {
		case ($res < 0):
			return -1;
			break;
		case ($res > 0):
			return 1;
			break;
		case ($res == 0):
			return 0;
			break;
	}
});
echo var_export($stu2,true);

运行实例 »

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

8272.png


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