1.数组排序函数
实例
<?php echo '<h3>数组排序函数</h3><hr>'; echo '<pre>'; echo '<p>注意: 1.数组为引用传参,所有原数据会被改写 2.数组元素的类型建议全部相同,否则会产生不可预见结果 3.排序成功返回: true,失败返回: false 可用常量: 1.SORT_REGULAR: [默认]正常比较单元(不改变类型) 2.SORT_NUMERIC: 单元被作为数字来比较 3.SORT_STRING: 单元被作为字符串来比较 4.SORT_NATURAL: 单元以“自然的顺序”对字符串进行排序 5.SORT_FLAG_CASE: 不区分大小写排序字符串</P>'; echo '<hr>'; $arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true]; echo '<p>原始数组:</p>'; print_r($arr); echo '一. 正排序<br>'; echo ' 1. sort(&$arr, $flag) 值升序排列,键名按索引方式重置'; sort($arr); print_r($arr); $arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true]; sort($arr, SORT_REGULAR); print_r($arr); $arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true]; sort($arr, SORT_NUMERIC); print_r($arr); $arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true]; sort($arr, SORT_STRING); print_r($arr); $arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true]; sort($arr, SORT_NATURAL); print_r($arr); $arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true]; sort($arr, SORT_FLAG_CASE); print_r($arr); echo ' 2. asort(&$arr,$flag)升序排列,键名保留与值的对应<br>'; $arr = ['id'=>3, 'name'=>'phu', 'course'=>'Php', 'grade'=>60, 5=>true]; asort($arr); print_r($arr); echo ' 3. ksort(&$arr,$flag) 按键名升序排列,适合于关联数组,键值对应关系不变<br>'; ksort($arr); //因为忽略了类型,5与其它键名类型不同,所以在最后面 print_r($arr); ksort($arr,SORT_STRING); //全部视为字符类型,5的ASCII码在普通字母之前 print_r($arr); ksort($arr,SORT_NUMERIC); //全部视为数值,则字母全转为0,5就是排到了最后面 print_r($arr); echo '二、反排序<br>'; echo ' 1. rsort(&$arr, $flag):对数组逆向排序 2. arsort(&$arr, $flag):对数组进行逆向排序并保持索引关系 3. krsort(&$arr, $flag):对数组按照键名逆向排序 与正排序的函数用法一样,只是排序按降序</p>'; echo '三、自定义排序,仅对值进行排序,忽略键名(即会重置键名)<br>'; $arr1 = [10, 4, 22, 99, 35, 18]; 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);
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.字符串长度计算函数
实例
<?php echo '<p>字符串长度计算</p>'; echo '<p> 1.strlen($str)<br> 2.mb_strlen($str, $encoding) </p>'; $siteName = 'php中文网'; echo '字符串样本:',$siteName,'<br>'; //获取内部字符编码集 $encoding = mb_internal_encoding(); echo '内部字符编码集: ',$encoding,'<br>'; echo '获取字节表示的字符串长度:',strlen($siteName),'<br>'; echo '获取字符数表示的长度:',mb_strlen($siteName, $encoding),'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.字符串与数组转换函数
实例
<?php echo '字符串与数组之间的转换<br>'; echo '<pre>'; echo '<p> 1.str_split($str,$length=1),按字符数量,将字符串分割为数组,默认为1 2.explode($delimiter,$str,$num):按分隔符,将字符串分割为数组,可指定数组元素数量 3.implode($glue, $str):按分隔符,将一维数组拼装成字符串,默认用空格分隔</p><br>'; $str = 'html,css,jquery,php,mysql,thinkphp'; echo '<p>原始字符串:'.$str.'</p>'; print_r(str_split($str)); //认一个字符转为数组中的一个元素 print_r(str_split($str,5)); //5个一组进行转换 print_r(explode(',',$str)); //用','号进行分割字符串 print_r(explode(',',$str,5)); //指定数组必须是5个元素,最后一个元素保存全部剩余数据 $arr2 = explode(',', $str); echo implode(' ', $arr2), '<br>'; //用空格分隔 echo implode(',',$arr2), '<br>'; //用,分隔 echo implode('*',$arr2), '<br>'; //用*分隔
运行实例 »
点击 "运行实例" 按钮查看在线实例
4.字符串的查找和替换函数
实例
<?php echo '字符串查找与替换'; echo '<pre>'; echo '<p> 1.strpos($str1,$str2, $offset)查找$str2在$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):替换字符串的子串 </p>'; $str = 'www.php.cn'; echo '字符串样本:',$str,'<br>'; echo strpos($str, 'p'),'<br>'; //默认从头开始查找 echo strpos($str, 'p', 5),'<br>'; //从索引5开始查找 echo '<hr>'; 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,$i), '<br>'; echo '替换了:',$i,'次'; echo '<hr>'; //在$str中,从第5个索引位置起的2个字符,用'pppph'进行替换 echo substr_replace($str,'pppph', 5, 2);
运行实例 »
点击 "运行实例" 按钮查看在线实例