数组排序方法总结
①按照升序对数组中的元素排序,使用sort()函数,如果对关联数组排序,会丢失键值,变成索引数组;
②按照降序对数组中的元素排序,使用rsort()函数,如果对关联数组排序,会丢失键值,变成索引数组;
③根据值,以升序对关联数组进行排序,使用asort()函数,保留键值。
④根据键,以升序对关联数组进行排序,使用ksort()函数,保留键值。
⑤根据值,以降序对关联数组进行排序,使用arsort()函数,保留键值。
⑥根据键,以降序对关联数组进行排序,使用krsort()函数,保留键值。
方法应用:
<?PHP $arr = array('语文' =>85 ,'数学' =>75 ,'英语' =>95 , '物理' =>55 , '化学' =>65 ); echo '<h2>数组排序总结:</h2>'.'<hr color="green">'; echo '<pre>'.'原始数据:'; print_r($arr); //使用sort()函数 echo '<hr color="red">'; echo '1.按照升序对数组中的元素排序,使用sort()函数:'.'<br>'; sort($arr); print_r($arr); //使用rsort()函数 echo '<hr>'; $arr = array('语文' =>85 ,'数学' =>75 ,'英语' =>95 , '物理' =>55 , '化学' =>65 ); echo '2.按照降序对数组中的元素排序,使用rsort()函数:'.'<br>'; rsort($arr); print_r($arr); //使用asort() echo '<hr>'; $arr = array('语文' =>85 ,'数学' =>75 ,'英语' =>95 , '物理' =>55 , '化学' =>65 ); echo '3.根据值,以升序对关联数组进行排序,使用asort()函数:'.'<br>'; asort($arr); print_r($arr); //使用ksort() echo '<hr>'; $arr = array('语文' =>85 ,'数学' =>75 ,'英语' =>95 , '物理' =>55 , '化学' =>65 ); echo '4.根据键,以升序对关联数组进行排序,使用ksort()函数:'.'<br>'; ksort($arr); print_r($arr); //使用arsort() echo '<hr>'; $arr = array('语文' =>85 ,'数学' =>75 ,'英语' =>95 , '物理' =>55 , '化学' =>65 ); echo '5.根据值,以降序对关联数组进行排序,使用arsort()函数:'.'<br>'; arsort($arr); print_r($arr); //使用krsort() echo '<hr>'; $arr = array('语文' =>85 ,'数学' =>75 ,'英语' =>95 , '物理' =>55 , '化学' =>65 ); echo '6.根据键,以降序对关联数组进行排序,使用krsort()函数:'.'<br>'; krsort($arr); print_r($arr); ?>
点击 "运行实例" 按钮查看在线实例
运行结果如下:
关于字符串经典函数应用:
1. 字符串长度计算
strlen($str):计算字符串的长度;
2. 字符串与数组之间的转换
str_split($str,$length=1):按字符数量,将字符串分割为数组,默认为1;
explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量;
implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔.
3. 字符串的查找与替换
strpos($str1,$str2, $offset):查找$str1在$str1中首次出现的位置;
strstr($str1, $str2):如果$str2是$str1的子串,返回子串,返回否则false,
如果确定$str2是$str1的子串,推荐使用strpos(),速度更快;
str_replace($str1, $str2, $str3, $num):子串替换,$num是替换次数
substr_replace($str1,$str2,$str3,$start, $length):替换字符串的子串
下面用实例来说明:
<?PHP $cars='上汽荣威,比亚迪,奇瑞,凯迪拉克,兰博基尼,法拉利,劳斯莱斯'; echo "<h2>字符串的长度以及与数组之间的转换:</h2>".'<hr color="green">'; echo "原始数据:",$cars.'<hr color="red">'; //计算字符串长度 echo '字符串的长度是:'.strlen($cars).'<hr>'; //字符串与数组之间的转换 //1.str_split($str,$length=1)按字符数量,将字符串分割为数组,默认为1 echo '<pre>'.'使用str_split函数后:<br>'; $cars1=str_split($cars,2); print_r($cars1); //默认一个字符转为数组中的一个元素,一个汉字2个字符一个元素 //2.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔 echo '<hr>使用implode函数后:<br>'; echo implode('',$cars1).'<hr>'; //3.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量 echo '使用explode函数后:<br>'; print_r(explode(',',$cars,7)); // //字符串的查找与替换 echo '<hr color="red">'; $cars='上汽荣威,比亚迪,奇瑞,凯迪拉克,兰博基尼,法拉利,劳斯莱斯'; echo "<h2>字符串查找与替换:</h2>".'<hr color="green">'; echo "原始数据:",$cars.'<hr color="red">'; //1.strpos($str,$needle, $offset)查找字符串首次出现的位置 echo "凯迪拉克的位置是:".strpos($cars, '凯迪拉克'),'<br>';//默认从头开始查找 //2.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false echo strstr($cars, '法拉利')?'找到':'没找到!','法拉利!'.'<br>'; //返回子串及后面部分 echo '法拉利前面的车有:'.strstr($cars, ',法拉利', true),'<br>'; //参数true,会返回子串前面部分 // echo '<hr>'; //3.str_replace($str1, $str2, $str3, $num):子串替换, echo '下面将奇瑞换成宝马:<br>'; echo str_replace('奇瑞','宝马',$cars), '<br>'; // echo '<hr>'; //4.substr_replace($str1,$str2,$str3,$start, $length):替换字符串的子串 //在$str中,从第5个索引位置起的2个字符,用'pppph'进行替换 //echo substr_replace($str,'pppph', 5, 2); echo '在上汽荣威后面加上别克威朗:<br>'; echo substr_replace($cars,'别克威朗,',10,0); ?>
点击 "运行实例" 按钮查看在线实例
运行结果如下: