博客列表 >数组的排序与字符串函数--2018年4月22日18点30分

数组的排序与字符串函数--2018年4月22日18点30分

hongda的博客
hongda的博客原创
2018年04月22日 18:46:08651浏览

以下为对数组排序和对字符串操作函数的总结:

  1. 对数组的排序:

实例

<?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的字符串。 


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议