一.数组的的排序
自然排序
实例
echo '<pre>'; //根据数组的值进行排序 //1. 升序 $arr = [45,90,22,10,3,18,33]; sort($arr); // 自然排序 echo var_export($arr),'<hr>'; //输出结果 array ( 0 => 3, 1 => 10, 2 => 18, 3 => 22, 4 => 33, 5 => 45, 6 => 90, )
运行实例 »
点击 "运行实例" 按钮查看在线实例
降序
实例
//2. 降序 $arr = [45,90,22,10,3,18,33]; rsort($arr); echo var_export($arr),'<hr>'; //输出结果 array ( 0 => 90, 1 => 45, 2 => 33, 3 => 22, 4 => 18, 5 => 10, 6 => 3, )
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.usort($arr,function(){})回调函数
实例
echo '<pre>'; //根据数组的值进行排序 $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 var_export($arr),'<hr>'; //输出结果 array ( 0 => 90, 1 => 45, 2 => 33, 3 => 22, 4 => 18, 5 => 10, 6 => 3, )
运行实例 »
点击 "运行实例" 按钮查看在线实例
二:多维数组的排序
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>'; //输出结果是 排序之前:array ( 0 => array ( 'name' => '林心如', 'grade' => 98, ), 1 => array ( 'name' => '范冰冰', 'grade' => 55, ), 2 => array ( 'name' => '左小青', 'grade' => 73, ), ) 排序之后:array ( 0 => array ( 'name' => '范冰冰', 'grade' => 55, ), 1 => array ( 'name' => '左小青', 'grade' => 73, ), 2 => array ( 'name' => '林心如', 'grade' => 98, ), )
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
//根据数组的键进行排序 $lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本']; ksort($lang);//键的升序 echo var_export($lang),'<hr>'; $lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本']; krsort($lang);//键的反序 echo var_export($lang),'<hr>'; //输出结果 array ( 'css' => '样式表', 'html' => '标记语言', 'javascript' => '前端脚本', 'php' => '后端脚本', ) array ( 'php' => '后端脚本', 'javascript' => '前端脚本', 'html' => '标记语言', 'css' => '样式表', )
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
//使用自定义的回调函数,对键名进行排序 // 根据键名的第二个字母进行排序 $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>'; //输出结果 array ( 'javascript' => '前端脚本', 'php' => '后端脚本', 'css' => '样式表', 'html' => '标记语言', )
运行实例 »
点击 "运行实例" 按钮查看在线实例
二.字符串的过滤和填充
实例
<?php /** * 字符串过滤与填充 * 1. trim(),ltrim(), rtrim() * 2. str_pad() */ // 字符串的过滤 $input = ' admin '; echo strlen($input),'<br>'; // 11 //$input = trim($input); //$input = ltrim($input); // 去队左边空格 $input = rtrim($input); // 去除右边空格 echo strlen($input),'<br>'; // 5 //删除文件扩展名: $str = 'demo2.php'; $str = rtrim($str, '.php'); echo $str, '<br>'; $str = 'www.php.cn'; $str = ltrim($str, 'www.'); echo $str, '<br>'; // 过滤字符也可以用区间来表示 $str = '132php中文网0987'; $str = trim($str,'0..9'); echo $str, '<hr>'; //字符串的填充 $str = 'php.cn'; echo strlen($str),'<br>'; //6 $str = str_pad($str, 20); // 将当前字符串扩充到20位,默认为空格 echo strlen($str),'<br>'; $str = 'php.cn'; //$str = str_pad($str, 20,'*',STR_PAD_RIGHT); //$str = str_pad($str, 20,'*',STR_PAD_LEFT); $str = str_pad($str, 20,'*',STR_PAD_BOTH); echo $str, '<hr>'; // sha1()加密,返回一个40位随机的字符串 $pass = '123456'; echo sha1($pass),'<br>'; $pass = str_pad($pass, 40,'phphtml,****',STR_PAD_BOTH); echo sha1($pass),'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
三.字符串的大小写转换
实例
<?php /** * 字符串的大小写转换 */ // strtolower() echo strtolower('THIS IS A PHP COURSE'), '<br>'; // strtoupper() echo strtoupper('this is a php course'), '<br>'; // ucfirst() echo ucfirst('this is a php course'), '<br>'; // ucwords() echo ucwords('this is a php course'), '<br>'; // 应用1: 将文件统一转为小写,实现跨平台(Linux是区分大小写) echo '<pre>'; $files = ['Model.php','Action.php', 'CreatUser.php']; foreach ($files as $file) { $res[] = strtolower($file); } $files = $res; echo var_export($files, true), '<br>'; // 应用2.将要进行判断的字符串转为统一的格式 $opt = 'EDIT'; switch (strtolower($opt)) { case 'select': print '查询操作'; break; case 'edit': print '编辑操作'; break; case 'delete': print '删除操作'; break; case 'update': print '更新操作'; break; default: print '非法操作'; break; }
运行实例 »
点击 "运行实例" 按钮查看在线实例
四.几个转义的字符串函数
实例
<?php /** * */ // nl2br(): 让\n产生换行的效果,实际上就是在\n后面插入了一个<br> $str1 = "2018年世界杯, \n 中国除了足球队没去,其它都去了"; echo nl2br($str1), '<br>'; //htmlspecialchars() $str2 = '<h1>他是\'一个 有"故事"的人</h1>'; echo $str2, '<br>'; // 正常转义输出: ', ", &,<,> echo htmlspecialchars($str2), '<hr>'; $str3 = "<h1>他是'一个 有"故事"的人</h1>"; echo htmlspecialchars_decode($str3),'<hr>'; // htmlentities() echo '<br>'; $str4 = "<p>中&美贸\$易战,'中国'必胜</p>"; echo htmlentities($str4),'<br>'; // strip_tags() $str5 = '<p>php是世界上<span style="color:red">最好</span>的编程语言吗?</p>'; echo $str5; echo strip_tags($str5); // 保留<span> echo strip_tags($str5,'<span>'); //php是世界上<span style="color:red">最好</span>的编程语言吗?
运行实例 »
点击 "运行实例" 按钮查看在线实例
五.三个最基本最常用的子串查询函数
实例
<?php /** * 三个最基本最常用的子串查询函数 */ //1. substr($str, $offset, $length):只知道要获取子串的位置,精确查询 $str = 'PHP is the best programming language'; // substr(), 索引从11开始的剩余内容,根据位置查询 echo substr($str, 11), '<br>'; echo substr($str, 11,4), '<br>'; // 区间查询,11开始取4个 echo substr($str, -3), '<br>'; // 区间查询,11开始取4个 //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>'; // strpos($str1, $str2, $start): 根据内容查询,返回字符串首次出现的位置 echo strpos($str, 'best');
运行实例 »
点击 "运行实例" 按钮查看在线实例
六.字符串查找并替换的二个函数
实例
<?php /** * 字符串查找并替换的二个函数 */ // str_replace(), substr_replace() $str = 'Peter Zhu is PHP Lecture'; //1.str_replace() echo str_replace('PHP', 'JAVA', $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 '<hr>'; // substr_replace() echo substr_replace($str,'PHP是最好的编程语言',0), '<br>'; echo substr_replace($str,'PHP是最好的编程语言',0,strlen($str)), '<br>'; echo substr_replace($str, 'PHP中文网 ',13,0),'<br>'; echo substr_replace($str, 'JAVA',13,3),'<br>'; // 删除式替换 echo substr_replace($str, '',6,3);
运行实例 »
点击 "运行实例" 按钮查看在线实例