当前位置: 首页 > 后端技术 > PHP

数组

时间:2023-03-29 17:50:40 PHP

PHP学习总结概述我们知道,在PHP编程语言中,数组的使用频率很高,几乎在每一个脚本中都会用到。PHP自带了大量优秀的操作数组的函数供我们使用。本文将对这些数组函数的使用进行分类总结,方便大家日后使用。创建1.range()创建一个指定范围的数组:$arr1=range(0,10);#array(0,1,2,3,4,5,6,7,8,9,10)$arr2=range(0,10,2);#array(0,2,4,6,8,10)$arr3=range('a','d');#array('a','b','c','d')$arr4=range('d','a');#array('d','c','b','a')2。compact()创建一个包含变量名称及其值的数组:$number=10;$string="我是PHPer";$array=array("和","你?");$result=compact("数字","字符串","数组");#array('number'=>10,'string'=>"I'mPHPer",'array'=>array("And","You?"))3.array_combine()创建一个数组,其中包含一个数组的值作为它的键,另一个数组的值作为它的值:$key=array("1","3","5","7","9");$value=array("I","Am","A","PHP","er");$result=array_combine($number,$array);#array('1'=>I,'3'=>'Am','5'=>'A','7'=>'PHP','9'=>'er')遍历1.forloop$arr=range(0,10);for($i=0;$i3,'milk'=>6,'eggs'=>10);while(list($product,$quantity)=each($products)){echo$product.'-'。$quantiry;}缺点:遍历完成后,无法对数组进行第二次遍历(数组内部指针指向最后一个元素)。3.foreach循环$products=array('apple'=>3,'milk'=>6,'eggs'=>10);foreach($productsas$product=>$quantity){echo$product.'-'。$quantiry;}操作键或值unset()—删除数组成员或数组in_array()—检查数组中是否存在值array_key_exists()—检查数组中是否存在给定键或索引array_search()—搜索数组中的给定值,如果成功则返回相应的键$array=array(1,2,3);取消设置($数组);#array()$fruit=array('apple'=>'goold','orange'=>'fine','banana'=>'OK');if(in_array('good',$fruit)){echo'Exit';}$search_array=array('first'=>1,'second'=>4);if(array_key_exists('first',$search_array)){echo"Exit";}$array=array(0=>'蓝色',1=>'红色',2=>'绿色',3=>'红色');$key=array_search('绿色',$array);#$key=2;array_keys()—返回数组中的部分或全部键array_values()—返回数组中的所有值$array=array('apple'=>'good','orange'=>'很好','香蕉'=>'好的');$keys=array_keys($array);#array('apple','orange','banana')$values=array_values($array);#大批('good','fine','ok')array_unique()—从数组中删除重复值$input=array(4,'4','3',4,3,'3');$result=array_unique($输入);#array(4,'3')array_flip()—交换数组中的键和值$input=array('oranges','apples','pears');$result=array_flip($输入);#array('oranges'=>0,'apples'=>1,'pears'=>2)array_count_values()统计数组中的所有值$input=array(1,'hello',1,'world','你好');$result=array_count_values($input);#array('1'=>2,'hello'=>2,'world'=>1)排序1.sort()和rsort()按升序或降序对数组进行排序:$fruits=array();排序($水果);#array('apple','banana','lemon','orange')rsort($fruits);#array('orange','lemon','banana','apple')2.asort()和arsort()对关联数组(按元素值)进行升序或降序排序,并保持索引关系:$fruits=array('d'=>'柠檬','a'=>'橙子','b'=>'香蕉','c'=>'苹果');asort($fruits);#array('c'=>''apple','b'=>''banana','d'=>'lemon','a'=>'orange')arsort($fruits);#array('a'=>'orange','d'=>'lemon','b'=>''banana','c'=>''apple')3.ksort()按键对数组进行排序:$fruits=array('d'=>'lemon','a'=>'orange','b'=>'banana','c'=>'apple');ksort($水果);#array('a'=>'orange','b'=>'banana','c'=>'apple','d'=>'lemon')4.shuffle()随机打乱数组顺序:$numbers=范围(1,5);洗牌($数字);#array(3,2,5,1,4)堆栈和队列array_push()—压入一个或多个单元格压入数组末尾(push)array_pop()—弹出数组的最后一个元素(pop)$stack=array('orange','banana');array_push($stack,'apple','raspberry');#array('orange','banana','apple','raspberry')$fruit=array_pop($stack);#array('orange','banana','apple')array_unshift()—在数组开头插入一个或多个单元格array_shift()—将数组开头的单元格移出数组$queue=array('orange','banana');array_unshift($queue,'apple','raspberry');#array('apple','raspberry','orange','banana')$fruit=array_shift($queue);#array('raspberry','orange','banana')split,fill,mergearray_slic()—从数组中取出一块array_splice()—移除数组的一部分并用其他值替换$input=array('a','b','c','d','e');$result=array_slice($input,2);#array('c','d','e')$input=array('红色','绿色','蓝色','黄色');array_splice($输入,2,1);#array('red','green','yellow')array_pad()—填充指定长度的数组$input=array(12,10,9);$result=array_pad($input,5,0);#array(12,10,9,0,0)$result=array_pad($input,-7,-1);#array(-1,-1,-1,-1,12,10,9)array_fill()—用给定值填充数组$a=array_fill(5,3,'a');#array(5=>'a',6=>'a',7=>'a')$b=array_fill(-2,3,'pear');#array(-2=>'a',0=>'a',1=>'a')array_fill_keys()—用指定的键和值填充数组$keys=array('foo',5,10,'bar');$result=array_fill_keys($keys,'a');#array('foo'=>'a',5=>'a',10=>'a','bar'=>'a')array_merge()—合并一个或多个数组$array1=array('数据0');$array2=array('data1');$result=array_merge($array1,$array2);#array('data0','data1')其他函数1.array_walk()使用用户自定义函数对数组中的每个元素进行回调处理(改变原数组):$a=array(1,2,3,4,5);array_walk($a,function(&$value,$key){++$value;});#array(2,3,4,5,6)2.array_map()将回调函数应用于给定数组(不改变原数组,结果生成一个新数组):$a=array(1,2,3,4,5);$b=array_map(函数($item){返回$item+1;},$a);#array(2,3,4,5,6)3.array_rand()从数组中随机取出一个或多个元素:$input=array('apple','banana','lemon','orange');$result=array_rand($input,2);#数组('香蕉','柠檬')4。array_diff()计算数组值的差异:$array1=array('a'=>'green','red','blue','red');$array2=array('b'=>'绿色','黄色','红色');$result=array_diff($array1,$array2);#数组('蓝色')