以下为对数组排序和对字符串操作函数的总结:
对数组的排序:
<?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的字符串。