7.数组和正则

1.数组数据结构

1.1什么是数组

数组的英文是array , 可以存入多个不同类型的数据,是一个复合数据类型。

1.2定义数组

$a1 = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇')

在上例中,我们发现我们存入了:整型、浮点、布尔、字符串,可以通过var_dump()函数打印出来显示

<?php
    
	$a1 = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');
	var_dump($shu);

?>

//array(4) {
//    [0]=>
//  int(1)
//  [1]=>
//  float(1.5)
//  [2]=>
//  bool(true)
//  [3]=>
//  string(33) "天王盖地虎,小鸡炖蘑菇"
//}

1.3指定索引

数组的默认索引是从0开始,依次加1直到最后一个元素,当然你也可以自定义索引,如果你从开头自定义

则后面的元素的索引就从自定义的那个数字依次加1

<?php
    
	$a1 = array(2=>1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');
	var_dump($shu);

?>
//array(4) {
//    [2]=>
//  int(1)
//  [3]=>
//  float(1.5)
//  [4]=>
//  bool(true)
//  [5]=>
//  string(33) "天王盖地虎,小鸡炖蘑菇"
//}

当然你也可以把索引设置成字母

<?php
    
	$a1 = array("name"=>"ymn" ,"age"=>21);
	var_dump($a1);

?>
    
//array(2) {
//  ["name"]=>
//  string(3) "ymn"
//  ["age"]=>
//  int(21)
//}    

1.4常用操作数组函数

序号 函数信息 说明
1 array_shift() 弹出数组中的第一个元素
2 array_unshift() 在数组的开始处压入元素
3 array_push() 向数组的末尾处压入元素
4 array_pop() 弹出数组末尾的最后一个元素
5 current() 读出指针当前位置的值
6 key() 读出指针当前位置的键
7 next() 指针向下移
8 prev() 向上移
9 reset() 指针到开始处
10 end() 指针到结束处

这些函数,也是面试中基础面试中最爱问到的问题。

序号 函数信息 说明
1 array_combine() 生成一个数组,用一个数组的值作为键名,另一个数组值作为值
2 range() 创建并返回一个包含指定范围的元素的数组。
3 compact() 创建一个由参数所带变量组成的数组
4 array_fill() 用给定的值生成数组
5 array_chunk() 把一个数组分割为新的数组块
6 array_merge() 把两个或多个数组合并为一个数组
7 array_slice() 在数组中根据条件取出一段值,并返回
8 array_diff() 返回两个数组的差集数组
9 array_search() 在数组中搜索给定的值,如果成功则返回相应的键名
10 array_splice() 把数组中的一部分去掉并用其它值取代
11 array_sum() 计算数组中所有值的和
12 in_array() 检查数组中是否存在某个值
13 array_key_exists() 检查给定的键名或索引是否存在于数组中
14 shuffle() 将数组打乱,保留键值
15 count() 计算数组中的单元数目或对象中的属性个数
16 array_flip() 返回一个键值反转后的数组
17 array_keys() 返回数组所有的键,组成一个数组
18 array_values() 返回数组中所有值,组成一个数组
19 array_reverse() 返回一个元素顺序相反的数组
20 array_count_values() 统计数组中所有的值出现的次数
21 array_rand() 从数组中随机抽取一个或多个元素,注意是键名
22 array_unique() 删除重复值,返回剩余数组
23 sort() 按升序对给定数组的值排序,不保留键名
24 rsort() 对数组逆向排序,不保留键名
25 asort() 对数组排序,保持索引关系
26 arsort() 对数组逆向排序,保持索引关系
27 ksort() 按键名对数组排序
28 krsort() 将数组按照键逆向排序
29 natsort() 用自然顺序算法对数组中的元素排序
30 natcasesort() 自然排序,不区分大小写
31 array_filter() 去掉数组中的空元素或者预定元素
32 extract() 将键变为变量名,将值变为变量值

2.PHP中的正则表达式

正则表达式就是匹配字符的规则

正则表达是会在开发中经常看到,它主要用在以下一些地方:匹配邮箱、手机号码、验证码、替换敏感的关键词。

例如:涉及政治和骂人的话

PHP的正则表达示定界符的规定如下:定界符,不能用a-zA-Z0-9\ 其他的都可以用。必须成对出现,有开始就

有结束。

2.1定义方法

例子					   说明
/中间写正则/				 正确   (常用这个)
$中间写正则$				 正确
%中间写正则%			     正确
^中间写正则^			     正确
@中间写正则@			     正确
(中间写正则)				 错误  /\//
A中间写正则A			     错误

2.2转义字符

在php中\(反斜杠)是具有转义的意思的,如果在\后面紧跟一个n那么n就会被转义成换行

如果你想取消转义只需要在前面再加一个\即可

/\//     // 把/取消转义,/原本是正则的结束,加上\就是普通的/(斜杠)了

2.3preg_match函数

<?php
	$zz = '/wq/';
	$string = 'ssssswqaaaaaa';
	if(preg_match($zz, $string, $matches)){  // 匹配的结果会赋值给$matches(数组)
    	echo '匹配到了,结果为:'.$matches[0]."\n";
    	var_dump($matches);
	}else{
    	echo '没有匹配到';
	}
?>

2.4常用的正则函数

序号 函数信息 说明
1 preg_filter() 执行一个正则表达式搜索和替换
2 preg_grep() 返回匹配模式的数组条目
3 preg_match() 执行一个正则表达式匹配
4 preg_match_all() 执行一个全局正则表达式匹配
5 preg_replace_callback_array() 传入数组,执行一个正则表达式搜索和替换使用回调
6 preg_replace_callback() 执行一个正则表达式搜索并且使用一个回调进行替换
7 preg_replace() 执行一个正则表达式的搜索和替换
8 preg_split() 通过一个正则表达式分隔字符串
$zz = '/wq/';
$string = 'asdwqfggwqaaaawqaa';
$res = preg_split($zz, $string); // 匹配的结果会赋值给$res(数组)

var_dump($res);

//array(4) {
//  [0]=>
//  string(3) "asd"
//  [1]=>
//  string(3) "fgg"
//  [2]=>
//  string(4) "aaaa"
//  [3]=>
//  string(2) "aa"
//}
posted @ 2021-12-22 22:03  Mn猿  阅读(146)  评论(0编辑  收藏  举报