大家好
以下是我对数组排序、字符串与数组之间的转换 、长度计算和查找与替换的练习以及总结,若有不够全面和错误的地方望大家提出。
<?php /** *一. 正序: associate(关联的), key(键),前面加上这二个单词的首字母表示 * 1. sort(&$arr, $flag) 按值升序排列,键名按索引方式重置 * 2. asort(&$arr,$flag) 按值升序排列,键名保留与值的对应 * 3. ksort(&$arr,$flag) 按键名升序排列,适合于关联数组,键值对应关系不变 * * 二、反序: reversal 反转,函数前添加一个r即可 * 1. rsort(&$arr, $flag):对数组逆向排序 * 2. arsort(&$arr, $flag):对数组进行逆向排序并保持索引关系 * 3. krsort(&$arr, $flag):对数组按照键名逆向排序 * * $flag = SORT_NUMERIC (转为数字类型),SORT_STRING(转为字符类型) * *三、自定义回调函数进行排序: usort(&$arr, functoin($a, $b){ #code }) * 注意: 仅对值进行排序,忽略键名(即会重置键名) */ $arr = ['name'=>'qi', 'age'=>29, 3=>true, 'a'=>'b']; //格式化输出 echo '<pre>'; //正序且键名重置 sort($arr); print_r($arr); echo '<hr>'; //正序且键名保留 asort($arr); print_r($arr); echo '<hr>'; // 键名正序排列 ksort($arr); print_r($arr); //数组反转,忽略原键名,忽略类型分组排序 rsort($arr); print_r($arr); //数组反转,保留键名,转为数字类型进行排序 arsort($arr, SORT_NUMERIC); print_r($arr); //键名反转排序 转为字符类型进行排序 krsort($arr, SORT_STRING); print_r($arr); // 字符串函数:长度计算 // 1.strlen($str) // 2.mb_strlen($str, $encoding) $siteName = '好好学习aaa'; //1.strlen($str):获取字节表示的字符串长度 //utf8模式下,一个中文字符用三个字节表示 echo strlen($siteName),'<br>'; //2.mb_strlen($str, $encoding) :获取字符数表示的长度 echo mb_strlen($siteName),'<br>'; echo '<hr color="red">'; // 字符串函数:字符串与数组之间的转换 // str_split($str); //默认一个字符转为数组中的一个元素 // str_split($str,5); //5个一组进行转换 $a = 'a,b,c,d,e,f,g,'; str_split($a); print_r(str_split($a,3)); echo '<hr color="red">'; //explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量,最后一个元素保存全部剩余数据 print_r(explode(',', $a,4)); //implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔 $b = explode(',', $a);//将字符串转变为数组 echo implode('/',$b);//将数组转变为用/分割的字符串 echo '<hr color="red">'; // 字符串函数:查找与替换 $str = 'www.php.cn'; //1.strpos($str,$needle, $offset)查找字符串首次出现的位置 echo strpos($str, 'p'),'<br>'; //默认从头开始查找 echo strpos($str, 'p', 5),'<br>'; //从索引5开始查找 //2.strstr($str1,$str2),如果$str2是$str1的子串,返回子串,返回否则false echo strstr($str, 'php'),'<br>'; //返回子串及后面部分 echo strstr($str, 'php', true),'<br>'; //参数true,会返回子串前面部分 echo '<hr>'; //3.str_replace($str1, $str2, $str3, $num):子串替换, echo str_replace('www','http://www',$str), '<br>'; echo '<hr>'; // 4.substr_replace($str1,$str2,$str3,$start,$length):替换字符串的子串 //在$str中,从第5个索引位置起的2个字符,用'pppph'进行替换 echo substr_replace($str,'pppph', 5, 2);
点击 "运行实例" 按钮查看在线实例
课程总结
1.正序: (1) sort(&$arr, $flag) 按值升序排列,键名按索引方式重置
(2)asort(&$arr,$flag) 按值升序排列,键名保留与值的对应
(3)ksort(&$arr,$flag) 按键名升序排列,适合于关联数组,键值对应关系不变
2.反序:(1)rsort(&$arr, $flag):对数组逆向排序
(2) arsort(&$arr, $flag):对数组进行逆向排序并保持索引关系
(3)krsort(&$arr, $flag):对数组按照键名逆向排序
注:$flag = SORT_NUMERIC (转为数字类型),SORT_STRING(转为字符类型)
3.字符串函数:长度计算
(1)strlen($str)—获取字节表示的字符串长度
(2)mb_strlen($str, $encoding)—获取字符数表示的长度
4.字符串函数:字符串与数组之间的转换
(1)str_split($str); 默认一个字符转为数组中的一个元素 str_split($str,5); 5个一组进行转换
(2)explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量,最后一个元素保存全部剩余数 据— explode(',', $a,4) 在$a中按','进行分组,保留4个元素
(3)implode('/',$b);//将数组转变为用/分割的字符串
5.字符串函数:查找与替换:(1)strpos($str,$needle, $offset)查找字符串首次出现的位置—strpos($str, 'p'); 默认从头开 始 查找 strpos($str, 'p', 5); 从索引5开始查找
(2)strstr($str1,$str2),如果$str2是$str1的子串,返回子串,返回否则false— echo strstr($str, 'php'); 返回子串及后面部分 strstr($str, 'php', true);参数true,会返回子串前面部分
(3)tr_replace($str1, $str2, $str3, $num):子串替换, —str_replace('www','http://www',$str);
(4)substr_replace($str1,$str2,$str3,$start,$length):替换字符串的子串— substr_replace($str,'pppph', 5, 2); 在$str中,从第5个索引位置起的2个字符,用'pppph'进 行替换