数组加强

Posted zhony

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组加强相关的知识,希望对你有一定的参考价值。

数组的概念

概念:数组的本质是存储、管理和操作一组变量属于复合类型的一种。

键值对的概念: $arr = array(‘id‘=>1,‘name‘=>‘duke‘,‘sex‘=>‘妖‘);

每个数组可以有多个值,多个值之间用逗号隔开,每个逗号内的数据我们称为一个单元,每个单元都 是有键(下标)=>值 ,也就是键值对组成,如果不写下标(键)默认会使用整数作为下标,每个单元的值 必须有下标通过下标来定位每个值在数组中的位置,每个单元只能有一种类型的下标。索引(整数)或 者关联(字符串)

数组的声明方式

使用array()数组方式的声明:

 

 1  //使用array();
 2  //1.索引数组
 3  $arr = array(1,‘帅的B哥‘,18,‘男神‘,‘182cm‘,‘180kg‘);
 4  //不给出下标默认索引下标
 5  var_dump($arr);
 6  //2.关联数组
 7  $arr1 = array(‘id‘=>2,‘name‘=>‘laowang‘,‘zhiye‘=>‘省港澳第一
 8 ADC‘,‘age‘=>‘30‘);
 9  var_dump($arr1);
10  //3.混合数组
11  $arr2 = array(‘id‘=>3,‘鹏鹏‘,‘sex‘=>‘雌雄同体‘,‘age‘=>28,‘zhiye‘=>‘阿偶度
12 鸭王‘);
13  var_dump($arr2);

使用[]数组方式声明(5.6版本以上才能使用):

//使?array[];
 //1.索引数组
 $arr = [1,‘帅的B哥‘,18,‘男神‘,‘182cm‘,‘180kg‘];
 //不给出下标默认索引下标
 var_dump($arr);
 //2.关联数组
 $arr1 = [‘id‘=>2,‘name‘=>‘laowang‘,‘zhiye‘=>‘省港澳第?ADC‘,‘age‘=>‘30‘];
 var_dump($arr1);
 //3.混合数组
 $arr2 = [‘id‘=>3,‘鹏鹏‘,‘sex‘=>‘雌雄同体‘,‘age‘=>28,‘zhiye‘=>‘沈阳第鸭
王];
 var_dump($arr2);

直接赋值法声明数组:

 1 //直接赋值法声明数组
 2 //1.索引数组
 3 $arr[]=1;
 4 $arr[]=‘李哥‘;
 5 $arr[]=‘受‘;
 6 $arr[]=33;
 7 var_dump($arr);
 8 //直接赋值法如果声明的时候不指定下标 默认从0开始分配索引下标
 9 $arr1[2]=1;
10 $arr1[10]=‘夫‘;
11 $arr1[5]=‘h‘;
12 $arr1[2]=‘www.mmp.com‘;
13 $arr1[]=57;
14 var_dump($arr1);
15 //如果给出索引下标 下一个下标就会从最大的开始每次增加1
16 //如果后面出现前面的下标 就会覆盖前面的赋值
17 //2.关联数组
18 $arr2[‘id‘]=1;
19 $arr2[‘name‘]=‘澳洲?神‘;
20 $arr2[‘sex‘]=‘?‘;
21 $arr2[‘age‘]=16;
22 $arr2[‘phone‘]=‘18676579765‘;
23 $arr2[‘url‘]=‘www.dushen.com‘;
24 var_dump($arr2);
25 //3.混合数组
26 $arr3[]=1;
27 $arr3[10]=‘天津聚集地‘;
28 $arr3[‘sex‘]=‘男‘;
29 $arr3[4]=99;
30 $arr3[]=‘www.chuanxiao.com‘;
31 var_dump($arr3);
32 //混合数组中索引序列不会被关联下标影响

读取数组的值

1 $arr1 = [‘id‘=>2,‘name‘=>‘laowang‘,‘zhiye‘=>‘省港澳第ADC‘,‘age‘=>‘30‘];
2  var_dump($arr1);
3  echo $arr1[‘id‘];
4  echo $arr1[‘name‘];
5  echo $arr1[‘zhiye‘];

通过变量+[下标]的方法或者某个数组准备的值。

注意:读取准备的某个元素,可以使用 echo ,

因为echo可以输出单个特殊类型的值。 如果要输出整个数组,要知道print_r或者var_dump来打印。

数组的增删改查

 1 <?php
 2  $arr =
 3 array(‘a‘=>‘test1‘,‘b‘=>‘test2‘,‘c‘=>‘test3‘,‘d‘=>‘test4‘,‘e‘=>‘test5‘);
 4  var_dump($arr);
 5  //添加方法1:
 6  //$arr[] = ‘星星‘;
 7 
 8  //添加方法2
 9  //$arr[‘h‘] = ‘猩猩‘;
10 
11  //修改元素
12  //$arr[‘h‘] = ‘猩不好惹‘;
13  //删除数组元素
14  //unset($arr[‘f‘]);
15  //unset($arr[‘d‘]);
16 
17  //删除数组
18  //unset($arr);
19  //清空数组
20  $arr = array();
21  var_dump($arr);

数组的遍历

数组的分类

(1)一维数组

  1 数组内部再也没有数组元素

 

(2)二维数组

 

  1 数组内还有数组单元 

(3)多维数组

  1 数组内还有数组单元 数组单元里面还有数组单元 一层一层的嵌套

 1 //?维数组
 2 
 3  $arr = array(‘为什么我这么帅,因为我每天都用大宝SOD蜜‘);
 4  var_dump($arr[0]);
 5  //?维数组
 6  $arr2 = array(
 7  1=>array(‘id‘=>1,‘name‘=>‘张三‘),
 8  2=>array(‘id‘=>2,‘name‘=>‘张四‘),
 9  3=>array(‘id‘=>3,‘name‘=>‘王?‘),
10  4=>array(‘id‘=>4,‘name‘=>‘王三‘),
11  5=>array(‘id‘=>5,‘name‘=>‘王炸‘),
12  6=>array(‘id‘=>6,‘name‘=>‘王鳖‘),
13  );
14  var_dump($arr2[6][‘name‘]);
15  //多维数组
16 
17  $arr3 = array(
18  1=>array(
19  1=>array(‘id‘=>1,‘name‘=>‘路‘,‘副业‘),
20  ),
21  2=>array(
22  2=>array(‘id‘=>2,‘name‘=>‘68‘,‘副业‘),
23  ),
24  3=>array(
25  3=>array(‘id‘=>3,‘name‘=>‘87‘,‘副业‘),
26  ),
27  );
28  var_dump($arr3);

 数组的遍历

数组的遍历: 使用一种特定的规则来逐个读取数组中的键和值

方式1:使用for循环

1 $arr = array(‘a‘,‘b‘,‘c‘,‘d‘,‘e‘);
2 echo $arr[0],‘<br >‘;
3 echo $arr[1],‘<br >‘;
4 echo $arr[2],‘<br >‘;
5 echo $arr[3],‘<br >‘;
6 echo $arr[4],‘<br >‘;
7 for($i=0;$i<count($arr);$i++) {
8  echo $arr[$i],‘<br >‘;
9 }

注意:for语句只能遍历索引数组,并且下标是连续且要注意不能遍历关联数组。

方式2:使用foreach遍历数组(专业遍历数组)

1)只遍历值

1 foreach(要遍历的数组变量 as 值){
2  循环体;
3 }

2)遍历键和值

1 foreach(要遍历的数组 as 键=>值){
2  循环体;
3 }

 

注意: [Math Processing Error]value变量名不是固定不变,他是可以是使用任意字符,foreach是
有循环功能

 1 遍历一维数组
 2 
 3 1 <?php
 4 2  //$arr = array(1=>1,2,3,4,20=>5,6,7,8,9,0);
 5 3  $arr = array(‘id‘=>1,‘name‘=>‘萝哥‘,‘zhiye‘=>‘萝‘);
 6 var_dump($arr);
 7  //只遍历值
 8  foreach($arr as $val){
 9  echo $val.‘<br/>‘;
10  }//遍历键和值
11  foreach($arr as $key=>$value){
12  echo ‘键:‘.$key.‘------>值:‘.$value.‘<br/>‘;

遍历二维数组

1 //推荐使?下?的?式进?数组遍历?维数组遍历(注意 重点内容 请记住)
2  foreach($arr as $key=>$value){
3  // var_dump($value);
4  //二维数组取值一边我们都使用键值对方式取值
5 echo $value[‘name‘].‘<br/>‘;
6  echo $value[‘age‘].‘<br/>‘;
7  echo $value[‘sex‘].‘<br/>‘;

while list each遍历数组

1 list(),可以将?组索引数组单元逐个赋值给?组变量,把每个值赋值给list内的变量,?且只能是索引
2 数组,索引数组必须是从0开始。
3 each(),每次访问?个数组单元并且将指针下移到下?个将要访问的数组单元中将访问出来的数组单
4 元以混合数组的形式返回,当达到数组单元最后没有的时候返回false

 


以上是关于数组加强的主要内容,如果未能解决你的问题,请参考以下文章

web代码片段

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

javascript常用代码片段

为什么我不能在此片段中生成唯一对象数组?

js简洁代码片段

为啥此代码片段返回意外结果?