批改状态:合格
老师批语:
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);点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号