博客列表 >常用字符串函数---2018-8-28

常用字符串函数---2018-8-28

晓明的博客
晓明的博客原创
2018年08月28日 16:42:05363浏览

一.数组的的排序

    自然排序


实例

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>他是'一个&nbsp;有"故事"的人</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);

运行实例 »

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


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