数组加强
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
以上是关于数组加强的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”