博客列表 >substr/strstr/strpos/str_replace/substr_replace/usort二维数组的排序—2018年8月28日02时08分

substr/strstr/strpos/str_replace/substr_replace/usort二维数组的排序—2018年8月28日02时08分

耗子的博客
耗子的博客原创
2018年08月28日 02:15:201009浏览

本章节学习了排序、字符串过滤与填充、大小写转换、字符串转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 键降序




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