本章节学习了排序、字符串过滤与填充、大小写转换、字符串转HTML,以及常用的子串查询函数
实例演示substr(),strstr(),strpos()函数
<meta charset="UTF-8"> <?php echo "<h2 style='color: green'>一、实例演示substr(),strstr(),strpos()函数</h2>"; echo '<hr>'; echo '<h4>1.1 substr() 函数返回字符串的一部分。</h4>';//substr($str,$offset,$length) 只知道要取子串的位置,精确查询 //如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。 //substr对中文字进行返回字符串的时请注意:1中文=3字节, GB2312占2字节,英文占1字节,截取位数不准确'; $title='我是PHP中文网的学员:熊成浩'; echo '初始数据=',$title,'<br>'; $title2=substr($title,0,9); echo $title2,'<br>'; $title3=substr($title,6); echo $title3,'<br>'; $title4=substr($title,-9); echo $title4; echo '<hr>'; echo '<h4>1.2 strstr() 搜索字符串在另一字符串中的第一次出现并返回字符</h4>';//strstr($str1,$str2,bool) $title5=strstr($title,'熊');//返回第一次出现"熊"及后面的字符串 echo $title5,'<br>'; $title6=strstr($title,'熊',true);//返回第一次出现"熊"及前面的字符串 echo $title6,'<br>'; $email='xiongchenghao@bonsaii.com'; $email2=strstr($email,'@'); echo '返回邮箱后缀为:',$email2,'<br>'; $email3=strstr($email,'@',true); echo '返回邮箱后前缀:',$email3; echo '<hr>'; echo '<h4>1.3 strpos() 搜索字符串在另一字符串中的第一次出现的位置</h4>'; $title7=strpos($title,'熊');//返回第一次出现"熊"及后面的位置,字符串位置从 0 开始 echo $title7,'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例演示str_replace(), substr_replace()
<meta charset="UTF-8"> <?php echo "<h2 style='color: green'>二、实例演示str_replace(), substr_replace()</h2>"; echo '<hr>'; echo '<h4>1.1 str_replace() 字符查找并替换</h4>';//(区分大小写) $title='因为程序员基本都是头脑程序化,不太会察言观色,也就是情商不是很高,我就是属于那种!~~(想让你的简历打动面试官吗?)'; echo '<b>初始化原文:</b>',$title,'<br>'; $title1=str_replace('~','^^',$title); echo '<br>'; echo '<b>替换~为^^后:</b>',$title1,'</br>'; echo '<br>'; //一次性替换多个内容 $title2=str_replace([',','!','?'],'...',$title);//一次性替换,!?为. 注意全角半角,大小写 echo '<b>一次性替换,!?为...:</b>',$title2,'</br>'; echo '<br>'; $title3=str_replace([',','!','?'],[',','!','?'],$title);//一次性替换,!?为. 全角半角,大小写 echo '<b>一次性替换,!?为半角:</b>',$title3,'</br>'; echo '<hr>'; echo '<h4>1.2 substr_replace() 替换字符串中的部分字符</h4>';//(区分大小写) $str='我在PHP中文网学习朱老师的课程。'; echo '<b>初始化原文:</b>',$str,'<br>'; $str1=substr_replace($str,'我在PHP中文网学习!',0); echo '<br>'; echo '<b>完整替换为:</b>',$str1,'<br>'; $str2=substr_replace($str,' 程序开发',24); echo '<br>'; echo '<b>从24个位置开始替换:</b>',$str2,'<br>'; $str3=substr_replace($str,' 程序开发,目前学习的是',24,0); echo '<br>'; echo '<b>从24个位置开始插入:</b>',$str3,'<br>'; $str4=substr_replace($str,'灭绝',24,3); echo '<br>'; echo '<b>从24个位置开始替换3个字符:</b>',$str4,'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例演示: usort()二维数组的排序
<meta charset="UTF-8"> <?php echo '<h2 style="color: green">三、键排序\值排序\二维数组的排序:(排序的结果会修改原始数组)</h2>'; echo '<pre>'; //echo "<h3 style='color: white;background-color: red'>3.0 usort()二维数组的排序</h3>"; echo "<p style='color: blue'>排序前的原始数据:</p>"; $products=array( ['product'=>'ipone X','price'=>7199,'sales'=>28556], ['product'=>'ipone 8','price'=>4499,'sales'=>25642], ['product'=>'ipone 8 Plus','price'=>5499,'sales'=>6421], ['product'=>'荣耀 9i','price'=>1399,'sales'=>23455], ['product'=>'小米 8','price'=>2699,'sales'=>21054], ['product'=>'荣耀 10','price'=>2399,'sales'=>19890], ); //排序前的结果 echo var_export($products); echo '<hr>'; //使用usort 根据销量进行排序 usort($products,function ($m,$n){ //第一个参数是数组,第二个参数是回调 $res=$m['sales'] - $n['sales']; // $res=strcmp($m['sales'],$n['sales']);//$m,$n是二维数组中的一个元素,也是一个数组 //strcmp()函数,比较两个字符串(区分大小写) switch ($res){ case ($res<0): return -1; // 如果 string1 < string2,返回负数 break; case ($res>0): return 1; //如果 string1 > string2,返回正数 break; default: return 0; //如果两个字符串相等0 } }); echo "<p style='color: green'>按销量升序的结果数据:</p>"; echo var_export($products,true); echo '<hr>'; //使用usort 根据价格进行排序 usort($products,function ($m,$n){ //第一个参数是数组,第二个参数是回调 return strcmp($m['price'],$n['price']); //strcmp()函数,比较两个字符串(区分大小写) }); echo "<p style='color: green'>按销量升序的结果数据:</p>"; echo var_export($products,true);
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
排序方式:(排序的结果会修改原始数组)
sort 值升序
rsort 值降序
usort 用户自定义排序(回调规则)
ksort 键升序
krsort 键降序