博主信息
博文 46
粉丝 3
评论 2
访问量 47073
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php函数 之 数组排序、字符串长度计算、字符串与数组转换、字符串查找与替换
墨雨的博客
原创
1111人浏览过

1.数组排序函数

实例

<?php 
echo '<h3>数组排序函数</h3><hr>';
echo '<pre>';
echo '<p>注意:
   1.数组为引用传参,所有原数据会被改写 
   2.数组元素的类型建议全部相同,否则会产生不可预见结果
   3.排序成功返回: true,失败返回: false
  
可用常量:
   1.SORT_REGULAR: [默认]正常比较单元(不改变类型)
   2.SORT_NUMERIC: 单元被作为数字来比较
   3.SORT_STRING: 单元被作为字符串来比较
   4.SORT_NATURAL: 单元以“自然的顺序”对字符串进行排序
   5.SORT_FLAG_CASE: 不区分大小写排序字符串</P>';
 echo '<hr>';  
 
$arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true];
echo '<p>原始数组:</p>';
print_r($arr);
echo '一. 正排序<br>';
echo '    1. sort(&$arr, $flag) 值升序排列,键名按索引方式重置';
sort($arr);
print_r($arr);
$arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true];
sort($arr, SORT_REGULAR);
print_r($arr);
$arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true];
sort($arr, SORT_NUMERIC); 
print_r($arr);
$arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true];
sort($arr, SORT_STRING);
print_r($arr);
$arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true];
sort($arr, SORT_NATURAL);
print_r($arr);
$arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true];
sort($arr, SORT_FLAG_CASE);
print_r($arr);

echo '    2. asort(&$arr,$flag)升序排列,键名保留与值的对应<br>';
$arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true];

asort($arr); 
print_r($arr);

echo '    3. ksort(&$arr,$flag) 按键名升序排列,适合于关联数组,键值对应关系不变<br>';
ksort($arr);  //因为忽略了类型,5与其它键名类型不同,所以在最后面
print_r($arr); 
ksort($arr,SORT_STRING); //全部视为字符类型,5的ASCII码在普通字母之前
print_r($arr); 
ksort($arr,SORT_NUMERIC); //全部视为数值,则字母全转为0,5就是排到了最后面
print_r($arr); 
echo '二、反排序<br>';
echo '    1. rsort(&$arr, $flag):对数组逆向排序
    2. arsort(&$arr, $flag):对数组进行逆向排序并保持索引关系
    3. krsort(&$arr, $flag):对数组按照键名逆向排序
  与正排序的函数用法一样,只是排序按降序</p>';
echo '三、自定义排序,仅对值进行排序,忽略键名(即会重置键名)<br>';
$arr1 = [10, 4, 22, 99, 35, 18];
usort($arr1, function($a, $b) {
	$res = $a - $b; 
	if ($res == 0) {
		return 0;
	} else if ($res > 0) {
		return true;
	} else {
		return false;
	}
});
print_r($arr1);

运行实例 »

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

2.字符串长度计算函数

实例

<?php 
echo '<p>字符串长度计算</p>';
echo '<p>
  1.strlen($str)<br>
  2.mb_strlen($str, $encoding)
 </p>';

$siteName = 'php中文网';
echo '字符串样本:',$siteName,'<br>';
//获取内部字符编码集
$encoding = mb_internal_encoding();
echo '内部字符编码集: ',$encoding,'<br>';
echo '获取字节表示的字符串长度:',strlen($siteName),'<br>';
echo '获取字符数表示的长度:',mb_strlen($siteName, $encoding),'<br>';

运行实例 »

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

3.字符串与数组转换函数

实例

<?php 
echo '字符串与数组之间的转换<br>';
echo '<pre>';
echo '<p>
    1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1
    2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
    3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔</p><br>';
 
$str = 'html,css,jquery,php,mysql,thinkphp';
echo '<p>原始字符串:'.$str.'</p>';
print_r(str_split($str)); //认一个字符转为数组中的一个元素
print_r(str_split($str,5)); //5个一组进行转换
print_r(explode(',',$str)); //用','号进行分割字符串
print_r(explode(',',$str,5)); //指定数组必须是5个元素,最后一个元素保存全部剩余数据

$arr2 = explode(',', $str);
echo implode(' ', $arr2), '<br>'; //用空格分隔
echo implode(',',$arr2), '<br>'; //用,分隔
echo implode('*',$arr2), '<br>'; //用*分隔

运行实例 »

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

4.字符串的查找和替换函数

实例

<?php 
echo '字符串查找与替换';
echo '<pre>';
echo '<p>
  1.strpos($str1,$str2, $offset)查找$str2在$str1中首次出现的位置
  2.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false
  如果确定$str2是$str1的子串,推荐使用strpos(),速度更快
  3.str_replace($str1, $str2, $str3, $num):子串替换,$num是替换次数
  4.substr_replace($str1,$str2,$str3,$start, $length):替换字符串的子串
 </p>';

$str = 'www.php.cn';
echo '字符串样本:',$str,'<br>';
echo strpos($str, 'p'),'<br>'; //默认从头开始查找
echo strpos($str, 'p', 5),'<br>'; //从索引5开始查找
echo '<hr>';
echo strstr($str, 'php'),'<br>';  //返回子串及后面部分
echo strstr($str, 'php', true),'<br>'; //参数true,会返回子串前面部分
echo '<hr>';
//3.str_replace($str1, $str2, $str3, $num):子串替换,
echo str_replace('www','http://www',$str,$i), '<br>';
echo '替换了:',$i,'次';
echo '<hr>';
//在$str中,从第5个索引位置起的2个字符,用'pppph'进行替换
echo substr_replace($str,'pppph', 5, 2);

运行实例 »

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


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学