博客列表 >用函数usort()演示二维数组的排序;实例演示如何使用三种最常用的子串查询函数;学会使用str_replace(), substr_replace()两种函数查询并替换字符串。2018-8-28 19:50

用函数usort()演示二维数组的排序;实例演示如何使用三种最常用的子串查询函数;学会使用str_replace(), substr_replace()两种函数查询并替换字符串。2018-8-28 19:50

朝闻道的博客
朝闻道的博客原创
2018年08月28日 20:13:28836浏览

实例演示代码如下:

实例

<?php
//数组:由键名和值二部分组成,排序也主要是依据键名与值
//* 键名: 索引和关联,升序和降序
//* 值: 也有二种排序规则
$arr = [13,14,19,26,32,33,8,6];
usort($arr, function($var1, $var2) {
    $res = $var1 - $var2;
    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),'<hr>';
// usort()多维数组的排序
$stu = [
    ['name'=>'李小龙','grade'=>88],
    ['name'=>'李连杰','grade'=>85],
    ['name'=>'李晓春','grade'=>80],
];
echo '排序之前:',var_export($stu,true),'<hr>';
//用户自定义排序规则根据数组的值进行排序
usort($stu, function ($m, $n) {
    //$m ,$n实际上还是一个数组
    return strcmp($m['grade'], $n['grade']);
});
echo '排序之后:',var_export($stu,true),'<hr>';//升序

//根据数组的键进行排序
$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
ksort($lang);
echo var_export($lang),'<hr>';//升序

$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
krsort($lang);
echo var_export($lang),'<hr>';//降序

//使用自定义的回调函数,对键名进行排序
// 根据键名的第三个字母进行排序
$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
uksort($lang, function($m, $n) {
    $a = substr($m,3,3);
    $b = substr($n,3,3);
    return strcmp($a, $b);
});
echo var_export($lang),'<hr>';//升序

运行实例 »

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

实例

<?php
//* 三个最基本最常用的子串查询函数
//1. substr($str, $offset, $length):只知道要获取子串的位置,精确查询
$str = 'PHP is the best programming language';

// substr(), 索引从6开始的剩余内容,根据位置查询
echo substr($str, 6), '<br>';
echo substr($str, 8,6), '<br>'; // 区间查询,从前往后数的第8开始取6个
echo substr($str, -8), '<br>'; // 区间查询,从最后一个开始往前数取8个

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


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

运行实例 »

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

实例

<?php
//* 字符串查找并替换的二个函数:str_replace(), substr_replace()
$str = 'bill jin is Yong artists';
//1.str_replace()
echo str_replace('bill', 'JACK', $str), '<br>';
//删除式替换
echo str_replace('Yong', '', $str), '<br>';
// 一次性替换多个内容
echo str_replace(['bill','jin','Yong'],'比尔金', $str), '<br>';
echo str_replace(['bill','jin','Yong'],['比尔','金','年轻人'], $str), '<br>';
// str_ireplace(): 忽略大小写的替换
echo '<hr>';
// substr_replace()

echo substr_replace($str,'时间是检验真理的唯一标准',0), '<br>';
echo substr_replace($str,'PHP是最好的编程语言',0,strlen($str)), '<br>';

echo substr_replace($str, '新闻联播 ',12,0),'<br>';
echo substr_replace($str, 'passion',9,3),'<br>';
// 删除式替换
echo substr_replace($str, '',6,8);

运行实例 »

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


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