Blogger Information
Blog 21
fans 0
comment 0
visits 18555
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
substr/strstr/strpos/str_replace/substr_replace/usort二维数组的排序—2018年8月28日02时08分
耗子的博客
Original
1010 people have browsed it

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




Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post