实例
<?php echo '<h3>4月18日作业-数组的排序及字符串操作</h3><hr color="green">'; $arr = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true]; $arr5 = ['id'=>3, 'name'=>'zhu', 'course'=>'php', 'grade'=>60, 5=>true]; echo '<pre>'; echo '<p>原始数组:</p>'; print_r($arr5); //1.sort(&$arr, $flag):正序且键名重置 echo '<hr>'; echo '<p>1.正序且键名重置,排序后:</p>'; sort($arr); sort($arr, SORT_REGULAR); //忽略类型,其实就是按类型分组,仅在分组中对同类型数据进行排序 sort($arr, SORT_NUMERIC); //全部视为数值类型,字母全转为0,true转为1, sort($arr, SORT_STRING); //全部视为字符类型,因为数字的ASCII码要小于字母,所有排在前面 sort($arr, SORT_NATURAL); //自然排序,与SORT_STRING结果一致 sort($arr, SORT_FLAG_CASE); //忽略大小写,PHP5.4+以上支持 print_r($arr); echo '<hr>'; // echo '<p>原始数组:</p>'; // print_r($arr5); //2.asort($arr, $flag):正序且键名保留 echo '<p>2.正序且键名保留,排序后:</p>'; asort($arr); // 等价于 asort($arr, SORT_REGULAR); //忽略类型,但是键值对应关系得到了保留 print_r($arr); echo '<hr>'; // echo '<p>原始数组:</p>'; // print_r($arr5); //3.ksort(&$arr, $flat):键名正序排列 echo '<p>3.键名正序排列,排序后:</p>'; ksort($arr); //因为忽略了类型,5与其它键名类型不同,所以在最后面 ksort($arr,SORT_STRING); //全部视为字符类型,5的ASCII码在普通字母之前 ksort($arr,SORT_NUMERIC); //全部视为数值,则字母全转为0,5就是排到了最后面 print_r($arr); echo '<hr>'; // echo '<p>原始数组:</p>'; // print_r($arr5); //4.rsort(&$arr):数组反转,忽略原键名 echo '<p>4.数组反转,忽略原键名,排序后:</p>'; rsort($arr); //忽略类型分组排序 print_r($arr); echo '<hr>'; // echo '<p>原始数组:</p>'; // print_r($arr5); //5. arsort(&$arr):数组反转,保留键名 echo '<p>5.数组反转,保留键名,排序后:</p>'; arsort($arr, SORT_STRING); //键值对应关系不变,反转是指由大到小,所以ASCII小的数字字符排到了后面 print_r($arr); echo '<hr>'; // echo '<p>原始数组:</p>'; // print_r($arr5); //6. krsort(&$arr): 键名反转排序 echo '<p>6.键名反转排序 ,排序后:</p>'; krsort($arr, SORT_STRING); //键名全部视为字符类型,按字母表逆序排列键名 print_r($arr); echo '<hr>'; //7. usort(&$arr, callback()): 用户自定义排序方式 echo '<p>7.用户自定义排序方式 ,排序后:</p>'; //这里介绍一个非常简单的例子,更复杂的案例,会在实战中进行介绍 $arr1 = [10, 4, 22, 99, 35, 18]; // echo '<p>原始数组:</p>'; // print_r($arr1); //下面我们用自定义回调方法对$arr1进行由小到大排列 echo '<p>排序后:</p>'; usort($arr1, function($a, $b) { $res = $a - $b; if ($res == 0) { return 0; } else if ($res > 0) { return true; } else { return false; } }); print_r($arr1); echo '<hr color="red">'; echo '<h3>字符串长度计算</h3>'; //strlen()/mb_strlen() $sitename = 'PHP中文网'; $encoding = mb_internal_encoding();//获取字符编码集 echo '内部编码是:',$encoding,'<br>'; echo strlen($sitename),'<br>';//计算长度,一个中文字为3个字符长度 echo mb_strlen($sitename,'UTF-8'),'<br>';//按照UTF-8编码获取值的真实长度 echo '<hr color="red">'; echo '<h3>字符串与数组之间的转换</h3>'; //str_split()/explode()/implode() $abc = 'html,css,php.java,mysql'; echo '原始字符串:'.$abc.'<br>'; // print_r(str_split($abc,5));//按照参数将字符串进行分割为数组,若不输入默认为1 // print_r(explode(',',$abc));//按照,分割,按照分隔符分割为数组 // print_r(explode(',',$abc,3));//按照,分割开,并只分割为3个部分,多余部分全部存入最后一个元素 //implode();垵分隔符,将数组拼接成字符串 $abc1 = explode(',',$abc); print_r($abc1); echo implode(' > ',$abc1); echo '<pre>'; $str = 'html,css,jquery,php,mysql,thinkphp'; echo '<p>原始字符串:'.$str.'</p>'; //1.str_split($str,$length=1)按字符数量,将字符串分割为数组,默认为1 // print_r(str_split($str)); //默认一个字符转为数组中的一个元素 // print_r(str_split($str,5)); //5个一组进行转换 echo '<hr>2:按分隔符,将字符串分割为数组<br>'; //2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量 print_r(explode(',',$str)); //用','号进行分割字符串 // print_r(explode(',',$str,5)); //指定数组必须是5个元素,最后一个元素保存全部剩余数据 echo '<hr>3:垵分隔符,将数组拼接成字符串<br>'; //3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔 $arr2 = explode(',', $str); echo implode(' ', $arr2), '<br>'; //用空格分隔 echo implode(',',$arr2), '<br>'; //用,分隔 echo implode('>>',$arr2),'<br>'; //用--分隔 echo '<hr color="red">'; echo '<h3>字符串的查找与替换</h3>'; /** * 1.strpos($str1,$str2):查找$str2在$str1中出现的位置 * 2.strstr($str1,$str2):如果$str1是$str1的字串,如果是返回ture,否则返回false * 3.str_replace(),子串替换 */ $black = '13812345678'; $sfz = '450127197911308569'; echo '<p>原始手机号:'.$black.'<br>'; echo '原始身份证:'.$sfz.'</p>'; echo '<hr>'; //1.strpos($str1,$str2):查找$str2在$str1中出现的位置 echo '查找手机号数字8第一次出现的索引位置:'; echo strpos($black,'8'),'<br>'; echo '查找身份证数字1第一次出现的索引位置:'; echo strpos($sfz,'1'),'<br>'; echo '<hr>'; //2.strstr($str1,$str2):如果$str2是$str1的字串,如果是返回ture,否则返回false echo strstr($black,'23'),'<br>'; echo strstr($sfz,'79'),'<br>'; echo '<hr>'; // 3.str_replace(),子串替换,WWW 替换成WAP echo str_replace('138', '136', $black),'<br>'; echo str_replace('1979', '1991', $sfz),'<br>'; echo '<hr>'; //4.substr_replace(),替换子串的子串第5个开始2个,替换为 echo substr_replace($black, '****', 3,4),'<br>'; echo substr_replace($sfz, '********', 10,8);
运行实例 »
点击 "运行实例" 按钮查看在线实例