博客列表 >数组排序及字符串操作-2018年4月19日16时02分发布(18日作业)

数组排序及字符串操作-2018年4月19日16时02分发布(18日作业)

lilove的博客
lilove的博客原创
2018年04月19日 16:15:201005浏览

主题:

数组排序总结,字符串长度计算,字符串数组转换,字符串查找与替换。

知识点:

数组排序参照:键值,键名。

数组排序是否保留键名。

字符串数组转换符,合并。

字符串查找与替换的函数的参数意义。

实现效果:

0.png

1.png2.png

数组排序总结代码:

<?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个字符替换成+++++

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

牢记函数及用法,中文字符串乱码问题,分割字符串符号以逗号 ','为准。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议