总结
数组的排序
1.数组为引用传参,所有原数据会被改写;
2.数组元素的类型建议全部相同,否则会产生不可预见结果
3.排序成功返回: true,失败返回: false
sort(&$arr, $flag) 按值升序排列,键名按索引方式重置,按类型排序
1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1
2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量
实例
<?php // 数组排序方法总结: // 数组的排序 // 1.数组为引用传参,所有原数据会被改写; // 2.数组元素的类型建议全部相同,否则会产生不可预见结果 // 3.排序成功返回: true,失败返回: false $arr =['id'=>2, 'name'=>'call', 'id2'=>'red', 3=>true]; echo '<pre>'; print_r($arr); // echo '<hr color="red">'; // // 1. sort(&$arr, $flag) 按值升序排列,键名按索引方式重置,按类型排序 // sort($arr); // print_r($arr); // echo '<hr color="red">'; // sort($arr,SORT_REGULAR);//[默认]正常比较单元(不改变类型) // sort($arr,SORT_NUMERIC);//单元被作为数字来比较 // sort($arr,SORT_STRING);//单元被作为字符串来比较 // print_r($arr); // echo '<hr color="red">'; //asort($arr);忽略类型 // asort($arr,SORT_NUMERIC);//单元被作为数字来比较 // asort($arr,SORT_STRING);//单元被作为字符串来比较 // print_r($arr); // echo '<hr color="red">'; // ksort($arr);//忽略类型 // ksort($arr,SORT_NUMERIC);//单元被作为数字来比较 // // ksort($arr,SORT_STRING);//单元被作为字符串来比较 // print_r($arr); //由大到小rsort翻转类型。 // echo '<hr color="red">'; // rsort($arr);//忽略类型 // rsort($arr,SORT_NUMERIC);//单元被作为数字来比较 // rsort($arr,SORT_STRING);//单元被作为字符串来比较 // print_r($arr); //保留键名 // echo '<hr color="red">'; // arsort($arr);//忽略类型 // arsort($arr,SORT_NUMERIC);//单元被作为数字来比较 // arsort($arr,SORT_STRING);//单元被作为字符串来比较 // print_r($arr); //echo '<hr color="red">'; // krsort($arr);//忽略类型 // krsort($arr,SORT_NUMERIC);//单元被作为数字来比较 // krsort($arr,SORT_STRING);//单元被作为字符串来比较 // print_r($arr); //usort(array, cmp_function) $arr1 = [12,25,32,16,14,98]; // print_r($arr1); //用自定义回调方法对$arr1进行由小到大排列 // usort($arr1, function($a, $b) { // $res = $a - $b; // if ($res == 0) { // return 0; // } else if ($res > 0) { // return true; // } else { // return false; // } // }); 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);
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php //字符串长度计算 $res = 'asd中文网'; $encoding = mb_internal_encoding(); echo '内部的字符编码集',$encoding,'<br>'; echo strlen($res),'<br>';//utf8模式下,一个中文字符用三个字节表示 echo '<hr>'; echo mb_strlen($res),'<br>';//获取字符数表示的长度 echo mb_strlen($res,'UTF-8'),'<br>'; echo '<p>字符串函数(三):字符串与数组之间的转换</p><hr color="green">'; /** * 1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1 * 2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量 * 3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔 */ $str = 'html,css,jquery,ajav,php,srcipt'; // echo $str; // echo '<pre>'; // // str_split($str); // print_r(str_split($str));//按字符数量,将字符串分割为数组,默认为1 // print_r(str_split($str,3))//个一组进行转换 // print_r(str_split(',',$str,));//用','号进行分割字符串 // print_r(str_split(',',$str,5));//指定数组必须是5个元素,最后一个元素保存全部剩余数据 //implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔 // explode(',', $str); // echo '<pre>'; // print_r(explode(',', $str)); //用','号进行分割字符串 // print_r(explode(',', $str,5)); //指定数组必须是5个元素,最后一个元素保存全部剩余数据 //implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔 $arr2 = explode(',', $str); // implode(',',$arr2); // echo implode(',',$arr2); echo implode('+',$arr2);//+分隔 echo implode(' ',$arr2);//用空格分隔
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php echo '<h2>字符串的查找于替代</h2>,<br>'; /** * 1.strpos($str1,$str2, $offset)查找$str1在$str1中首次出现的位置 * 2.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false * 如果确定$str2是$str1的子串,推荐使用strpos(),速度更快 * 3.str_replace($str1, $str2, $str3, $num):子串替换,$num是替换次数 * 4.substr_replace($str1,$str2,$str3,$start, $length):替换字符串的子串 */ $str = 'www.baidu.com'; // echo strpos($str, 'i');//默认从头开始查找 echo '<br>'; echo strpos($str, 'b',3),'<br>';//索引从第3个开始找 //.strstr($str1, $str2),如果$str2是$str1的子串,返回子串,返回否则false echo strstr($str,'bai'),'<br>';//返回子串及后面部分 echo strstr($str,'bai',true),'<br>';//参数true,会返回子串前面部分 //子串替换, echo str_replace('www', 'http://www', $str),'<hr>'; //替换字符串的子串 echo substr_replace($str,'hahaha', 6, 3);
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔