Blogger Information
Blog 9
fans 1
comment 0
visits 7659
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组的排序与字符串函数--2018年4月22日18点30分
hongda的博客
Original
652 people have browsed it

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

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


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!