Blogger Information
Blog 20
fans 0
comment 1
visits 14885
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组排序,字符串查询,过滤,大小写转换,替换2018/8/27
南风的博客
Original
921 people have browsed it

实例

<?php
/**
 *  实例演示substr(),strstr(),strpos()函数
 */

/**
 * 一、substr($str,$offset, $length)
 * 1.功能: 获取指定位置或区间内的字符串
 * 2.参数: $str(必),$offset(必),$length(选)
 * 3.返回: 不指定长度,则返回指定位置之后所有字符串,指定区间则返回指定长度的字符串
 * 4.场景: 适合只知道取串的位置,主要用于精确查询
 */
$str='PHP is the best programming language';
//substr()从指定位置进行返回,适用于子串位置已知
//索引11是'best'字符串开始处,返回'b'之后全部内容
echo substr($str,11),'<br>';
//设置区间查询
//索引11开始的4个字符:'best'
echo substr($str,11,4),'<br>';
//负数从结尾开始
echo substr($str,-4),'<hr>';//输出uage

/**
 * 二、strstr($str1, $str2,bool)
 * 1.功能: 查找字符串的首次出现
 * 2.参数: $str1(必),$str2(必)要查询的子串,bool:true,返回前面部分,false返回后面(默认)
 * 3.返回: 返回查到的字符串后面或前台部分字符,没找到返回false
 * 4.场景: 适合只知道查询内容,不知道准确位置的情况下,进行模糊查询
 * 5.提示: 如果仅仅是判断查询的内容是否在字符串,应该用更快的strpos()函数
 * 6.类似: stristr()不区分查找子中的大小写
 */

$email='admin@php.com';
//查询'@'是否存在并返回@以及后面的内容(包括@):@php.com
echo strstr($email,'@'),'<br>';
//查询'@'是否存在并返回@前面的内容(不包括@):admin
echo strstr($email,'@',true ),'<hr>';

/**三、strpos($str1,$str2,$start)
* 1.功能: 查找字符串首次出现的位置
* 2.参数: $str1(必),$str2(必)要找的字符串,$start(选)查询起始索引,默认从0开始
* 3.返回: 目标字符串的起始索引
* 4.场景: 快速判断某个字符串是否存在
* 5.类似: stripos()查询时不区分大小写
 */
//如果只是想知道是否存在某个字符串,使用subpos()直接返回子串偏移量效率更高
echo strpos($str,'best');

运行实例 »

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

实例

<?php
/**
*实例演示str_replace(), substr_replace()
 */

$str='Peter Zhu is PHP lecture';
//1.str_palce()将PHP替换成JAVA
echo str_replace('PHP','JAVA',$str),'<br>';
//2.删除指定字符:用空字符代替
echo str_replace('PHP','',$str),'<br>';
//3.要替换的多个字符串,可以存放到数组中
echo str_replace(['Peter','Zhu','PHP'],'朱老师',$str),'<br>';
//4.新字符串也可以来自数组,但数量必须要被替换数组相同
echo str_replace(['Peter','Zhu','lecturer'],['彼得','朱','讲师'],$str),'<br>';
//5.str_ireplace()这是不区分被替换字符串大小写的替换
echo str_ireplace('php','java',$str),'<br>';

运行实例 »

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

 

实例

<?php
/**
* usort()二维数组的排序
** 记忆规律:
* 1.函数名有a: 保留键值关系,适合关联数组
* 2.函数名有r:逆序(降序),由大到小排列
* 3.函数名有u:自定义回调处理
*
一、根据数组的值进行排序
* 第一组: 忽略键名,主要针对索引数组
* 1.sort($arr) 升序
* 2.rsort($arr) 降序
* 3.usort($arr,$callback) 回调
*
 */
//1,升序
$arr=array(1,3,8,2,4,0);
sort($arr);
echo  var_export($arr,true),'<br>';
//2降序
$arr=[1,5,8,7,2];
rsort($arr);
echo  var_export($arr,true),'<br>';
$arr=[8,5,1,6,3];
//回调函数进行排序
usort($arr,function ($value1,$value2){
    $res=$value1-$value2;
    switch ($res) {
        case ($res < 0):
//            return -1;
            return  1;  //降序

            break;

        case ($res > 0):
//            return 1;
            return -1;//降序
            break;
        case ($res == 0):

            return 0;
            break;
    }
});
echo  var_export($arr,true),'<br>';
//根据数组的值进行排序,保留键值关系,主要针对关联数组

//1,升序,键值保留
$height=['黎明'=>172,'刘德华'=>180,'周星驰'=>175];

asort($height);
echo var_export($height,true),'<br>';
//2,降序,键值保留
arsort($height);
echo '保留键降序排序',var_export($height,true),'<hr>';


/**
 * 二、根据键名排序
 * 1. ksort()
 * 2. krsort()
 * 3. uksort()
 */
//1,按键名升序
$info=['name'=>'xiaoqiang','seight'=>'mediu','hoppy'=>'Pang ball'];
//按键名升序
ksort($info);
echo var_export($info,true),'<br>';
//按键名降序
krsort($info).'<hr>';

$stu=[
    ['name'=>'小明','grade'=>66],
    ['name'=>'小红','grade'=>53],
    ['name'=>'小军','grade'=>89],
    ['name'=>'小李','grade'=>91],
    ['name'=>'小田','grade'=>73],
];

//输出原数组
echo '排序前:',var_export($stu,true).'<br>';
//用户自定义回调排序 默认升序
usort($stu,function ($m,$n){
    return strcmp($m['grade'],$n['grade']);
});

//输出排序数组
echo '升序排序后:',var_export($stu,true),'<hr>';

usort($stu,function ($m,$n){
    return strcmp($n['grade'],$m['grade']);
});
//输出排序数组
echo '降序排序后:',var_export($stu,true),'<hr>';

运行实例 »

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


Correction status:qualified

Teacher's comments:
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