PHP(六)数组

1、快速创建数组
创建索引数组range()

$arr = range(2,10);
print_r($arr);

创建索引数组compact()

$a = 'username';
$b = 123456;
$c = '北京';
$arr = compact('a','b','c');
print_r($arr);

2、数组函数

2.1 str_split(‘字符串’,长度):
函数把字符串分割到数组中,长度选填。

$str = "中文乱码";
print_r(str_split($str,3));

2.2 implode(‘数组元素之间放置的内容’,数组):
函数返回一个由数组元素组合成的字符串。

$arr = ['苹果','香蕉','菠萝'];
print_r(implode(",",$arr));

2.3 explode(哪里分割字符串,字符串):
函数把字符串打散为数组。

$str = '一,二,三,四';
print_r(explode(',',$str));

2.4 in_array(‘搜索值’,‘数组’,检查类型):
函数搜索数组中是否存在指定的值,为true则判断类型是否相同。

$arr = ['苹果','香蕉','菠萝',100];
print_r(in_array('菠萝',$arr));

2.5 count(‘数组’,模式):
函数返回数组中元素的数目。
0 - 默认。不对多维数组中的所有元素进行计数。
1 - 递归计数,计算多维数组中的所有元素。

$arr = ['苹果','香蕉','菠萝',100];
print_r(count($arr));

2.6 array_sum(数组):
函数返回数组中所有值的和。

$arr = [10,20,30];
print_r(array_sum($arr));

2.7 array_unique(数组):
函数移除数组中的重复的值,并返回结果数组。

$arr = [10,10,'20'];
print_r(array_unique($arr));

3、数组排序
3.1 sort(数组):函数对索引数组进行升序排序。
3.2 rsort(数组):函数对索引数组进行降序排序。
3.3 asort(数组):函数对关联数组按照键值进行升序排序。
3.4 arsort(数组):函数对关联数组按照键值进行降序排序。
3.5 ksort(数组):函数对关联数组按照键名进行升序排序。
3.6 krsort(数组):函数对关联数组按照键名进行降序排序。
4、数组添加元素
4.1 array_unshift(数组,值,…):
函数用于向数组插入新元素。新数组的值将被插入到数组的开头。

$arr = ['a','b','c','d'];
array_unshift($arr,"blue",'puple');
print_r($arr);

4.2 array_push()(数组,值,…):
函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
注意:
数值键名将从 0 开始,以 1 递增,字符串键名将保持不变。
5、数组合并
4.1 array_combine():
函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。
注意:
键名数组和键值数组的元素个数必须相同!
如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。

$a = ['name','age','school','sex'];
$b = ['张三',30,'中心小学','男'];
$c = array_combine($a,$b);
print_r($c);

4.2 array_merge():
函数把一个或多个数组合并为一个数组。
注意:
可以向函数输入一个或者多个数组。
如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。
函数与 array_merge_recursive() 函数之间的不同是array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
6、通过数组指针函数遍历数组
current($arr):得到数组当前所在位置元素的键值
key($arr):得到数组当前指针所在位置元素的键名
next($arr):将数组指针向下移动一位,并且得到数组指针所在位置元素的键值
prev($arr):将数组指针向上移动一位,并且返回当前指针所在位置元素的键值
end($arr):将数组指针移动到数组的末尾,并且返回当前元素的键值
reset($arr):将数组指针移动到数组的开始,并且返回当前元素的键值
7.通过list和each遍历数组
list遍历必须是索引数组,最好是下标连续的索引数组

$arr = array(3=>10,'b','abc');
list(,,,$var3,$var4,$var5)=$arr;
echo $var3,'---',$var4,'---',$var5;

each遍历

$arr = array('name'=>'abc','age'=>18,1,'abc');
print_r(each($arr));

正则表达式
1、preg_grep(正则,数组):
返回给定数组中与模式pattern匹配的元素组成的数组。

$arr = ['abc','123','abc123','9'];
$p = preg_grep('/^[0-9]*$/',$arr);
print_r($p);

2、preg_match(正则,字符串):
函数用于执行一个正则表达式匹配。

$str = "hello WORLD!";
$p = preg_match('/world/i',$str);
 if($p)
 {
     echo "找到world";
 }
 else{
     echo "未找到world";
 }

3、preg_match_all(正则,字符串,数组):
函数用于执行一个全局正则表达式匹配。
返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。

$str = "你好中国,你好大中国,中";
$p = preg_match_all('/中国/',$str,$arr);
print_r($arr);

4、preg_replace(正则,替换,原字串):
函数执行一个正则表达式的搜索和替换。

$str = "你好中国,你好大中国,中";
$p = preg_replace('/你(.+?)国/','祖国',$str);
print_r($p);

匹配图片路径

$image = '<img src="/file/image/20180525.jpg" />';
preg_match_all('/src="(.*?(jpg|jpeg|gif|png))/', $image, $url);
print_r($url[1][0]);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值