批改状态:合格
老师批语:
总结
数组的排序
1.数组为引用传参,所有原数据会被改写;
2.数组元素的类型建议全部相同,否则会产生不可预见结果
3.排序成功返回: true,失败返回: false
sort(&$arr, $flag) 按值升序排列,键名按索引方式重置,按类型排序
1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1
2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
<?php
// 数组排序方法总结:
// 数组的排序
// 1.数组为引用传参,所有原数据会被改写;
// 2.数组元素的类型建议全部相同,否则会产生不可预见结果
// 3.排序成功返回: true,失败返回: false
$arr =['id'=>2, 'name'=>'call', 'id2'=>'red', 3=>true];
echo '<pre>';
print_r($arr);
// echo '<hr color="red">';
// // 1. sort(&$arr, $flag) 按值升序排列,键名按索引方式重置,按类型排序
// sort($arr);
// print_r($arr);
// echo '<hr color="red">';
// sort($arr,SORT_REGULAR);//[默认]正常比较单元(不改变类型)
// sort($arr,SORT_NUMERIC);//单元被作为数字来比较
// sort($arr,SORT_STRING);//单元被作为字符串来比较
// print_r($arr);
// echo '<hr color="red">';
//asort($arr);忽略类型
// asort($arr,SORT_NUMERIC);//单元被作为数字来比较
// asort($arr,SORT_STRING);//单元被作为字符串来比较
// print_r($arr);
// echo '<hr color="red">';
// ksort($arr);//忽略类型
// ksort($arr,SORT_NUMERIC);//单元被作为数字来比较
// // ksort($arr,SORT_STRING);//单元被作为字符串来比较
// print_r($arr);
//由大到小rsort翻转类型。
// echo '<hr color="red">';
// rsort($arr);//忽略类型
// rsort($arr,SORT_NUMERIC);//单元被作为数字来比较
// rsort($arr,SORT_STRING);//单元被作为字符串来比较
// print_r($arr);
//保留键名
// echo '<hr color="red">';
// arsort($arr);//忽略类型
// arsort($arr,SORT_NUMERIC);//单元被作为数字来比较
// arsort($arr,SORT_STRING);//单元被作为字符串来比较
// print_r($arr);
//echo '<hr color="red">';
// krsort($arr);//忽略类型
// krsort($arr,SORT_NUMERIC);//单元被作为数字来比较
// krsort($arr,SORT_STRING);//单元被作为字符串来比较
// print_r($arr);
//usort(array, cmp_function)
$arr1 = [12,25,32,16,14,98];
// print_r($arr1);
//用自定义回调方法对$arr1进行由小到大排列
// usort($arr1, function($a, $b) {
// $res = $a - $b;
// if ($res == 0) {
// return 0;
// } else if ($res > 0) {
// return true;
// } else {
// return false;
// }
// });
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);点击 "运行实例" 按钮查看在线实例
<?php
//字符串长度计算
$res = 'asd中文网';
$encoding = mb_internal_encoding();
echo '内部的字符编码集',$encoding,'<br>';
echo strlen($res),'<br>';//utf8模式下,一个中文字符用三个字节表示
echo '<hr>';
echo mb_strlen($res),'<br>';//获取字符数表示的长度
echo mb_strlen($res,'UTF-8'),'<br>';
echo '<p>字符串函数(三):字符串与数组之间的转换</p><hr color="green">';
/**
* 1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1
* 2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
* 3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
*/
$str = 'html,css,jquery,ajav,php,srcipt';
// echo $str;
// echo '<pre>';
// // str_split($str);
// print_r(str_split($str));//按字符数量,将字符串分割为数组,默认为1
// print_r(str_split($str,3))//个一组进行转换
// print_r(str_split(',',$str,));//用','号进行分割字符串
// print_r(str_split(',',$str,5));//指定数组必须是5个元素,最后一个元素保存全部剩余数据
//implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
// explode(',', $str);
// echo '<pre>';
// print_r(explode(',', $str)); //用','号进行分割字符串
// print_r(explode(',', $str,5)); //指定数组必须是5个元素,最后一个元素保存全部剩余数据
//implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
$arr2 = explode(',', $str);
// implode(',',$arr2);
// echo implode(',',$arr2);
echo implode('+',$arr2);//+分隔
echo implode(' ',$arr2);//用空格分隔点击 "运行实例" 按钮查看在线实例
<?php
echo '<h2>字符串的查找于替代</h2>,<br>';
/**
* 1.strpos($str1,$str2, $offset)查找$str1在$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):替换字符串的子串
*/
$str = 'www.baidu.com';
// echo strpos($str, 'i');//默认从头开始查找
echo '<br>';
echo strpos($str, 'b',3),'<br>';//索引从第3个开始找
//.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false
echo strstr($str,'bai'),'<br>';//返回子串及后面部分
echo strstr($str,'bai',true),'<br>';//参数true,会返回子串前面部分
//子串替换,
echo str_replace('www', 'http://www', $str),'<hr>';
//替换字符串的子串
echo substr_replace($str,'hahaha', 6, 3);点击 "运行实例" 按钮查看在线实例
3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号