以下为对数组排序和对字符串操作函数的总结:
对数组的排序:
<?php
/医院
* Created by PhpStorm.
* User: hongda
* Date: 21/04/2018
* Time: 12:21 AM
*/
echo '<h3>changyong Array hanshu</h3>';
echo '<hr>';
$arr =['id'=>3, 'name'=>'hongda', 'course'=>'php', 'grade'=>60, 5=>true];
echo '<pre>';
echo '<p>origianl Array</p>';
print_r($arr);
echo '<hr>';
/*
* 一.正序:sort(), asort(), ksort()
* 二.反序:rsort(), arsort(), krsort()
* reversal associate
*/
//1.sort(&$arr,$flag): 正序且键名重置
//sort($arr);
//sort($arr,SORT_NUMERIC);// 字符串会被认为是0
//sort($arr,SORT_STRING); //按照ASCII来排序,
//var_dump(($arr));
echo '<hr>';
//2.asort(&$arr,$flag): 正序且键名保留
$arr =['id'=>3, 'name'=>'hongda', 'course'=>'php', 'grade'=>60, 5=>true];
//asort($arr); //忽略类型的
//asort($arr,SORT_NUMERIC);// 字符串会被认为是0
//asort($arr,SORT_STRING);//按照ASCII来排序,
//print_r($arr);
echo '<hr>';
//3.ksort(&$arr,$flag): 正序且键名保留 按照键名排序
$arr =['id'=>3, 'name'=>'hongda', 'course'=>'php', 'grade'=>60, 5=>true];
//ksort($arr); //忽略类型的
//ksort($arr,SORT_NUMERIC);// 字符串会被认为是0
//ksort($arr,SORT_STRING);//按照ASCII来排序,
//print_r($arr);
echo '<hr>';
//4.rsort(&$arr,$flag): 倒序且键名重置
$arr =['id'=>3, 'name'=>'hongda', 'course'=>'php', 'grade'=>60, 5=>true];
//rsort($arr); //忽略类型的
//rsort($arr,SORT_NUMERIC);// 字符串会被认为是0
//rsort($arr,SORT_STRING);//按照ASCII来排序,
//print_r($arr);
echo '<hr>';
//5.arsort(&$arr,$flag): 倒序且保留键名
$arr =['id'=>3, 'name'=>'hongda', 'course'=>'php', 'grade'=>60, 5=>true];
//arsort($arr); //忽略类型的
//arsort($arr,SORT_NUMERIC);// 字符串会被认为是0
//arsort($arr,SORT_STRING);//按照ASCII来排序,
//print_r($arr);
//echo '<hr>';
//var_dump(($arr));
//echo '<hr>';
//6.krsort(&$arr,$flag): 正序且键名保留 按照键名排序
$arr =['id'=>3, 'name'=>'hongda', 'course'=>'php', 'grade'=>60, 5=>true];
//krsort($arr); //忽略类型的
//krsort($arr,SORT_NUMERIC);// 字符串会被认为是0
//print_r($arr);
krsort($arr,SORT_STRING);//按照ASCII来排序,
print_r($arr);
echo '<hr>';
//7. usort()
$arr1 = [10, 4, 20, 22, 99, 35, 18];
print_r($arr1);
usort($arr,function ($a,$b){
$res = $a -$b ;
if (res == 0){
return 0;
} else if ($res > 0){
return true;
} else {
return false;
}
});
echo '<hr>';
print_r($arr1);
?>点击 "运行实例" 按钮查看在线实例
总结:
正序 :sort(), asort(), ksort() 其中sort()函数会把数组的键名重置, 而asort()则会保留键名, ksort() 则是让数组按照键名排序。函数中的第二个参数,如果没有参数的话,则是会把数组里面的元素先按字符类型分类,再按顺序排序, 如果是 SORT_NUMERIC的话 则是按照数字排序 且string会被认为是0,如果是SORT_STRING的话,则是按照ASCII来排序.
2.字符串长度计算:
strlen($str), mb_strlen($str,$encoding)
<?php /医院 * Created by PhpStorm. * User: hongda * Date: 21/04/2018 * Time: 4:47 PM */ echo '<p>length of string hanshu 1</p>'; echo '<hr>'; /* * strlen($str): str : string , len: length * mb_strlen($str,$encoding) */ $stieName = 'www.w3schools.com'; //获取系统的字符编码集 $encoding = mb_internal_encoding(); echo $encoding; echo '<br>'; //1.strlen($str)获取自己表示的字符串长度 echo strlen($stieName).'<br>'; //. mb_strlen($str[,$encoding]): 获取字符数表示的长度 echo mb_strlen($stieName,'UTF-8').'<br>'; ?>
点击 "运行实例" 按钮查看在线实例
总结:
strlen()函数 是返回字符串的长度
而 mb_strlen($str,$encoding) 返回 由多少个字节组成 encoding 的编码的长度 如“UTF-8”
3.字符串与数组之间的转换
str_split($str,$length), explode($delimiter, $str, $num), implode($glue, $str)
<?php
/医院
* Created by PhpStorm.
* User: hongda
* Date: 22/04/2018
* Time: 2:11 PM
*/
echo '<p>字符串函数(三):字符串与数组之间的转化</p>';
echo '<hr>';
/*
* 1.str_split($str,$length)
* 2.explode($delimiter, $str, $num);
* 3.implode($glue, $str)
*/
//1.str_split($str,$length)
echo '<pre>';
$str = 'html, css, jquery, php, mysql, thinkphp';
echo '<p>origianl string: '.$str.'</p>';
//echo strlen($str);
//1.str_split($str,$length)
//print_r(str_split($str));
//print_r(str_split($str,5));
//echo count(str_split($str));
//2.explode($delimiter, $str, $num); 按分隔符将字符串分割成数组
print_r(explode(',',$str));
print_r(explode(',',$str,5));//把最后两个放在一个元素里面
//3.implode($glue, $str) :按分隔符将一维数组拼装成字符串
$arr2 = explode(',',$str);
print_r($arr2);
echo implode(',',$arr2).'<br>';
echo implode(' ',$arr2).'<br>';
?>点击 "运行实例" 按钮查看在线实例
总结:
(1).str_split($str,$length) 会把字符串按照 length参数 多少长度一分 生成数组
(2).explode($delimiter, $str, $num): 会把字符串按照 $delimiter来分成数组 比如 “.” “,”“ ”“|”等 。$num则决定把字符串分成多少个元素。
(3).implode($glue, $arr) 则是把数组给拼接成字符串 数组中的每个元素 中间的分隔符为 参数$glue 可以为 “.”
“,”“ ”“|”等
4. 字符串的查找与替换
strpos($str1, $str2) , strstr($str1, $str2) , str_replace(), substr_replace()
<?php
/医院
* Created by PhpStorm.
* User: hongda
* Date: 22/04/2018
* Time: 6:23 PM
*/
echo '<p>字符串函数(六):查找与替换</p><hr>';
/*
* 1.strpos($str1, $str2); 查找$str2在$str1中首次出现的位置
* 2.strstr($str1, $str2): 如果$str2是$str1的子串, 返回子串,否则返回false
* 3.str_replace(): 字符串替换
* 4. substr_replace : 替换字符串的子串
*/
$str = 'www.php.cn';
// 1.strpos($str1, $str2); 查找$str2在$str1中首次出现的位置
echo strpos($str,'p').'<br>';
echo strpos($str,'p',5).'<br>'; //从第五个位置开始找
//2.strstr($str1, $str2): 如果$str2是$str1的子串, 返回子串,否则返回false
echo strstr($str,'p').'<br>'; //返回子串及后面内容
echo strstr($str,'p',true).'<br>';//返回子串前面部分
var_dump(strstr($str,'a'));
echo '<br>';
//3.str_replace($str1 , $str2 , $str): 字符串替换
echo str_replace('www','http://www',$str).'<br>';
//4. substr_replace($str1 , $str2 , $start, $length) : 替换字符串的子串
echo substr_replace($str,'pppph',5,2);
?>点击 "运行实例" 按钮查看在线实例
总结:
(1)strpos($str1, $str2,$offset) 查找$str2在$str1中首次出现的位置 第三个参数表示从第几个位置开始查找
(2) strstr($str1, $str2): 如果$str2是$str1的子串, 返回子串及后面内容,否则返回false 如果在第三个参数加上 true,则会返回子串之前的字符串。
(3)str_replace($str1 , $str2 , $str): 字符串替换
先查找 字符串$str1在字符串$str中的位置, 然后用 $str2替换$str1在$str中的位置。
(4)substr_replace($str1 , $str2 , $start, $length) : 替换字符串的子串
把$str2替换$str1中从 start的位置长度为length的字符串。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号