主题:
数组排序总结,字符串长度计算,字符串数组转换,字符串查找与替换。
知识点:
数组排序参照:键值,键名。
数组排序是否保留键名。
字符串数组转换符,合并。
字符串查找与替换的函数的参数意义。
实现效果:
数组排序总结代码:
<?php // 设置文档字符编码 header("Content-type: text/html; charset=utf-8"); echo '<h2>'. '数组排序方法总结'. '</h2>'. '<hr color="red">'; // $array1 = [6, 3, '北京', '上海', false, '深圳', ['小明', '小花', '小丽']]; // echo '<pre>'; // echo '<p>'. '索引数组:'. '</p>'; // print_r($array1); //数组要用print_r()输出 // echo '<hr color="red">'; // echo '<p style="color:blue">'. '索引数组正序排序不保留键名(数组内的值类型也会排序):'. '</p>'; // sort($array1); // print_r($array1); // echo '<p style="color:blue">'. '索引数组正序排序且保留键名:'. '</p>'; // asort($array1); // print_r($array1); // echo '<p style="color:blue">'. '索引数组以键名顺序排序(没啥意义,数组不会改变):'. '</p>'; // ksort($array1); // print_r($array1); // echo '<p style="color:blue">'. '索引数组倒序排序且键名忽略:'. '</p>'; // rsort($array1); // print_r($array1); // echo '<p style="color:blue">'. '索引数组倒序排序且保留键名:'. '</p>'; // arsort($array1); // print_r($array1); // echo '<p style="color:blue">'. '索引数组以键名顺序倒序排序:'. '</p>'; // krsort($array1); // print_r($array1); $array2 = ['姓名'=>'小李', '性别'=>'男', 6=>'奇怪', 2=>7]; echo '<pre>'; echo '<p>'. '关联数组:'. '</p>'; print_r($array2); //数组要用print_r()输出 echo '<hr color="red">'; // echo '<p style="color:blue">'. '关联数组正序排序不保留键名:'. '</p>'; // sort($array2); // print_r($array2); // echo '<p style="color:blue">'. '关联数组正序排序且保留键名:'. '</p>'; // asort($array2); // print_r($array2); // echo '<p style="color:blue">'. '关联数组以键名顺序排序:'. '</p>'; // ksort($array2); // print_r($array2); // echo '<p style="color:blue">'. '关联数组倒序排序且不保留键名:'. '</p>'; // rsort($array2); // print_r($array2); // echo '<p style="color:blue">'. '关联数组按值倒序排序且保留键名:'. '</p>'; // arsort($array2); // print_r($array2); echo '<p style="color:blue">'. '关联数组以键名顺序倒序排序:'. '</p>'; krsort($array2); print_r($array2);
运行实例 »
点击 "运行实例" 按钮查看在线实例
字符串操作代码:
<?php // 设置文档字符编码 // header("Content-type: text/html; charset=utf-8"); echo '<h2>'. '字符串操作函数'. '</h2>'. '<hr color="red">'; // 获取内部编码集 $encoding = mb_internal_encoding(); echo '内部编码集是:'. $encoding. ',1个中文用3个字节表示。'. '<hr color="red">'; //UTF-8下中文符号也占3个字节 // 定义并输出字符串变量 $str = '123,fight,坚持!'; echo '字符串:'. $str. '<br>'; echo '<p style="color:blue;">'. '1.计算字符串长度:'. '</p>'; // strlen();计算字节长度,1个中文字符占3个字节 echo '字符串字节长度是:'. strlen($str). '<br>'; // mb_strlen();计算字符数 echo '字符数长度是:'. mb_strlen($str, 'UTF-8'); echo '<hr color="red">'; echo '<p style="color:blue;">'. '2.字符串与数组之间的转换:'. '</p>'; // str_split(str, length):分割。str:字符串,length:分割的每段的字节长度 echo 'str_split(str, length):'. '<br>'. '<pre>'; print_r(str_split($str, 2)); //中文字符分割会乱码,分割成一个值3个字节或以上不乱码 echo '</pre>'. '<br>'; // explode(delimiter, string, num):分割。delimiter:分隔符,string:分割的数组,num:数组元素的数量 echo 'explode(delimiter, string, num):'. '<br>'. '<pre>'; print_r(explode(',', $str)); print_r(explode(',', $str, 2)); //加入第三个参数,多余的元素都放在最后一个值中 echo '</pre>'; // implode(glue, pieces):一维数组组合成字符串(第二个函数的反操作)。glue:粘结字符串,pieces: echo 'implode(glue, pieces):'. '<br>'; $array = explode(',', $str, 4); echo '<pre>'; print_r($array); echo '用-拼接后:'. implode('-', $array); echo '<br>'; echo '用$拼接后:'. implode('$', $array); echo '</pre>'; echo '<hr color="red">'; echo '<p style="color:blue;">'. '3.字符串的查找与替换:'. '</p>'; // strpos(haystack, needle)查找字符串首次出现的位置,第三个参数可以指定从哪个位置开始查询 echo '“3”在$str中首次出现的位置是:'. strpos($str, '3'). '<br>'; //结果是一个数字 // strstr(haystack, needle)如果$str2是$str1的子串,返回子串,返回否则false echo strstr($str, 'fight'). '<br>'; //返回子串及后面部分 echo strstr($str, 'fight', true). '<br>'; //参数true,返回子串前面部分 // str_replace(search, replace, subject)子串替换 echo str_replace('fight', '加油', $str). '<br>'; // substr_replace(string, replacement, start)替换子符串的子串 echo substr_replace($str, '+++++', 5, 3); //在$str中第5个位置往后3个字符替换成+++++
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
牢记函数及用法,中文字符串乱码问题,分割字符串符号以逗号 ','为准。