概述要访问一个变量的内容,可以直接使用它的名字。如果变量是数组,则可以使用变量名和关键字或索引的组合来访问其内容。与其他变量一样,可以使用=运算符更改数组元素的内容。可以使用array[key]语法访问数组元素。数组的基本操作PHP定义了一个数组:$array=array();$array["key"]="values";?>在PHP中声明数组主要有两种方式:1.使用array()函数声明数组,2.直接给数组元素赋值.//array数组$users=array('phone','computer','dos','linux');echo$users;//只会打印出数据类型Arrayprint_r($users);//Array([0]=>phone[1]=>computer[2]=>dos[3]=>linux)$numbers=range(1,5);//创建包含指定范围的数组print_r($numbers);//Array([0]=>1[1]=>2[2]=>3[3]=>4[4]=>5)print_r(true);//1var_dump(false);//bool(false)//print_r可以简单的打印出字符串和数字,数组会以Array开头,以key-表示值形式。print_r输出boolean值和nulls的结果是没有意义的,所以用var_dump更合适//通过循环显示数组中的所有值for($i=0;$i<5;$i++){echo$users[$i];echo'';}//通过count/sizeofNumber计算数组的单元个数或对象的属性个数for($i=0;$i$value;$key和$value是变量名,可以自己设置foreach($usersas$key=>$value){echo$key.'';//输出key}?>Createanarrayofcustomkeys//Createanarrayofcustomkeys$ceo=array('apple'=>'jobs','microsoft'=>'Nadella','LarryPage','Eric');//如果不声明元素的key,它会从零开始print_r($ceo);//Array([apple]=>jobs[microsoft]=>Nadella[0]=>LarryPage[1]=>Eric)echo$ceo['apple'];//jobs//php5.4$array=["foo"=>"bar","bar"=>"foo",];print_r($array);//Array([foo]=>bar[bar]=>foo)?>可以从php5.4数组定义中使用语法,使用[]而不是array()有点类似于javascript中数组的定义。each()的使用//通过给数组元素赋值来创建数组$ages['trigkit4']=22;echo$ages.'';//数组//因为相关数组的索引不是数字,所以不能通过for循环来进行遍历操作,只能使用foreach循环或者list()和each()结构//eachuse//each返回数组中的当前键/值对并将数组指针向前移动一步$users=array('trigkit4'=>22,'mike'=>20,'john'=>30);//print_r(each($users));//Array([1]=>22[value]=>22[0]=>trigkit4[key]=>trigkit4)//等价于:$a=array([0]=>trigkit4,[1]=>22,[value]=>22,[key]=>trigkit4);$a=each($users);//each取出原数组的第一个元素打包成新数组赋给$aecho$a[0];//trigkit4//!!表示将实际存在的数据转换成布尔值echo!!each($users);//1?>each的指针指向第一个键值对,并返回第一个数组元素,获取其key-valuepair,并将其包装成一个新的数组list使用()list来将数组的值赋值给一些变量,看下面的例子:$a=['2','abc','定义'];列表($var1,$var2)=$a;echo$var1.'';//2echo$var2;//abc$a=['name'=>'trigkit4','age'=>22,'0'=>'boy'];//仅列表识别key为数字的索引list($var1,$var2)=$a;echo$var1;//boy?>注意:list只识别key为数字的索引数组元素反向排序:sort(),asort()和ksort()都是正向排序,当然也有对应的反向排序。反向:rsort()、arsort()和krsort()。array_unshift()函数将新元素添加到数组的头部,array_push()函数将每个新元素添加到数组的末尾。array_shift()删除数组头部的第一个元素,它的相反函数是array_pop(),删除并返回数组末尾的一个元素。array_rand()返回数组中的一个或多个键。函数shuffle()随机排序数组的元素。函数array_reverse()给出了原始数组的反向排序数组。使用count()和sizeof()来计算数组中下标的数量。array_count_values()统计数组中下标值的个数。$numbers=array('100','2');sort($numbers,SORT_STRING);//按字符串排序,字符串只比较第一个数字的大小print_r($numbers);//Array([0]=>100[1]=>2)$arr=array('trigkit4','banner','10');sort($arr,SORT_STRING);print_r($arr);//数组([0]=>10[1]=>banner[2]=>trigkit4)shuffle($arr);print_r($arr);//随机排序$array=array('a','b','c','d','0','1');array_reverse($array);print_r($array);//对原数组进行逆序排序。Array([0]=>a[1]=>b[2]=>c[3]=>d[4]=>0[5]=>1)//数组复制$arr1=array('10',2);$arr2=&$arr1;$arr2[]=4;//$arr2变了,$arr1还是array('10',3)print_r($arr2);//Array([0]=>10[1]=>2[2]=>4)//asortuses$arr3=&$arr1;//现在arr1和arr3相同$arr3[]='3';asort($arr3);//对数组进行排序,保持原来的关系print_r($arr3);//Array([1]=>2[2]=>3[0]=>10)//ksort使用$fruits=array('c'=>'banana','a'=>'apple','d'=>'orange');ksort($fruits);print_r($fruits);//数组([a]=>apple[c]=>banana[d]=>orange)//unshift使用array_unshift($array,'z');//在开头添加一个元素print_r($array);//Array([0]=>z[1]=>a[2]=>b[3]=>c[4]=>d[5]=>0[6]=>1)//使用current(pos)echocurrent($array);//z;获取当前数组中的当前单元//useofnextechonext($array);//a;将数组中的内部指针向前移动一位//useofresetechoreset($array);//z;将数组的内部指针指向第一个单元//prevuseechonext($array);//a;echoprev($array);//z;倒回一位//sizeof使用echosizeof($数组);//7;统计数组元素的个数//array_count_values$num=array(10,20,30,10,20,1,0,10);//统计数组元素出现的次数print_r(array_count_values($num));//Array([10]=>3[20]=>2[30]=>1[1]=>1[0]=>1)?>current():每个数组都有一个内部指针指向他当前单元,初始指向插入数组的第一个元素进行循环遍历$value=range(0,120,10);for($i=0;$i$value);$i++){print_r($value[$i].'');//0102030405060708090100110120}?>数组实例array_pad函数//array_pad函数,选择性地在数组首尾追加$num=array(1=>10,2=>20,3=>30);$num=array_pad($num,4,40);print_r($num);//数组([0]=>10[1]=>20[2]=>30[3]=>40)$num=array_pad($num,-5,50);//array_pad(数组、大小、值)print_r($num);//数组([0]=>50[1]=>10[2]=>20[3]=>30[4]=>40)?>size:指定长度的整数向右补齐,负数数字填充到左边。unset()的使用//unset()的使用$num=array_fill(0,5,rand(1,10));//rand(min,max)print_r($num);//Array([0]=>8[1]=>8[2]=>8[3]=>8[4]=>8)echo'';unset($num[3]);print_r($num);//数组([0]=>8[1]=>8[2]=>8[4]=>8)?>array_fill()的使用//array_fill()的使用$num=range('a','e');$arrayFilled=array_fill(1,2,$num);//array_fill(start,number,value)echo'';print_r($arrayFilled);?>array_combine()使用$number=array(1,2,3,4,5);$array=array("I","Am","A","PHP","er");$newArray=array_combine($number,$array);print_r($newArray);//数组([1]=>I[2]=>Am[3]=>A[4]=>PHP[5]=>er)?>array_splice()删除数组成员:$color=array("red","green","蓝色","黄色");计数($color);//得到4array_splice($color,1,1);//删除第二个元素print_r(count($color));//3echo$color[2];//yellowecho$color[1];//blue?>array_unique删除数组中的重复值:$color=array("red","green","blue","yellow","blue","green");$result=array_unique($color);print_r($result);//Array([0]=>red[1]=>green[2]=>blue[3]=>yellow)?>array_flip()交换数组的键和值$array=array("red","blue","re??d","Black");print_r($array);echo"";$array=array_flip($array);//print_r($array);//Array([red]=>2[blue]=>1[Black]=>3)?>array_search()搜索值$array=array("red","blue","re??d","Black");$result=array_search("red",$array)//array_search(value,array,strict)if(($result===NULL)){echo"没有值red";}else{echo"有avalue$result";//有值为0}?>