博客列表 >0827-数组的查询、更新、排序

0827-数组的查询、更新、排序

3期-Shawn的博客
3期-Shawn的博客原创
2018年08月28日 14:29:09605浏览

实例

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
</head>
<body>


<h2>作业1:编程:实例演示substr(),strstr(),strpos()函数</h2>
<?php

    //三个最基本最常用的子串查询函数

    //1. substr($str, $offset, $length):只知道要获取子串的位置,精确查询
$str = 'PHP is the best programming language';
$str1 = 'PHP is the best programming language best';

    // substr(), 索引从11开始的剩余内容,根据位置查询
echo substr($str, 11), '<br>';
echo substr($str, 11,4), '<br>'; // 区间查询,11开始取4个
echo substr($str, -3,2), '<br>'; // 倒数第3个开始取2个
echo substr($str, -3), '<br>','<br>'; // 倒数第3个开始至尾部


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


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

<h2>作业2:编程:实例演示str_replace(), substr_replace()</h2>

<?php

//字符串查找并替换的二个函数:str_replace(), substr_replace()


$str = 'Peter Zhu is PHP Lecture';
//1.str_replace()
echo str_replace('Zhu', 'Wang', $str), '<br>';
//删除式替换
echo str_replace('Zhu', '', $str), '<br>';
// 一次性替换多个内容
echo str_replace(['Peter','Zhu','PHP'],'王老师', $str), '<br>';
echo str_replace(['Peter','Zhu','Lecture'],['彼得','王','讲师'], $str), '<br>';
// str_ireplace(): 忽略大小写的替换
echo str_ireplace(['peter','zhu','lecture'],['彼得','王','讲师'], $str), '<br>', '<br>';

// substr_replace()
echo substr_replace($str,'PHP是最好的编程语言',0), '<br>';
echo substr_replace($str,'PHP是最好的编程语言',0,strlen($str)), '<br>';//strlen();返回字符串长度

echo substr_replace($str, 'PHP中文网  ',13,0),'<br>';
echo substr_replace($str, 'JAVA',13,3),'<br>';
// 删除式替换
echo substr_replace($str, '',6,3);

echo '<hr>';

?>

	<h2>作业3:实例演示: usort()二维数组的排序</h2>
<?php

//3.数组排序使用回调方法
$arr = [45,90,22,10,3,18,33];
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 '<pre>',var_export($arr),'<hr>';

// usort()多维数组的排序
$stu = [
  ['name'=>'林心如','grade'=>98],
  ['name'=>'范冰冰','grade'=>55],
  ['name'=>'左小青','grade'=>73],
];
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'=>'后端脚本'];
uksort($lang, function($m, $n) {
    $a = substr($m,1,1 );
    $b = substr($n,1,1 );
    return strcmp($a, $b);
});
echo var_export($lang),'<hr>';

?>
</body>
</html>

运行实例 »

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


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