什么是数组?
数组就是被命名的用来存储一系列数值的地方。数组array是非常重要的数据类型。相对于其他的数据类型,它更像是一种结构,而这种结果构可以存储一系列数值。数组能够在单一变量名中存储许多值,并且能够通过引用下标号来访问某个值。
在 PHP 中,有三种数组类型:
索引数组 - 带有数字索引的数组关联数组 - 带有指定键的数组多维数组 - 包含一个或多个数组的数组创建数组array(key => value)创建索引数组使用array()函数声明数组。PHP属于弱类型语言相对较灵活和方便,也可以直接是数组的元素值value,不需要键值key,索引是自动分配的(索引从 0 开始)。例:array("1" => "百度","2" => "阿里","3" => "腾讯");或者是不使用键值:array("百度","阿里","腾讯");当然也可以写成:$arr[0] = "百度";$arr[1] = "阿里";$arr[2] = "腾讯";创建关联数组关联数组和索引数组类似,只是关联数组不能够像索引数组的键名那样只能够为数字,它可以是数值和字符串以及混合形式,判断一个数组是否为关联数组的依据是:数组中的键名是否存在一个不是数字的。不是就是关联。array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯");
多维数组array(array(),array()) 二维数组获得数组的长度 - count() 函数 //结果返回3(说明数组中有三个元素)遍历数组输出数组中元素的值。对于索引数组常用for、foreach;对于关联数组常用foreach。使用print_r()函数打印循环后的结果,也可以用var_dump()。遍历索引数组遍历并输出索引数组的所有值,可以使用for、 foreach(array_expression as $value) 、foreach (array_expression as $key => $value) 循环,如下:使用for循环"; //换行显示print_r($data);打印结果显示如下:Array( [0] => 百度 [1] => 阿里 [2] => 腾讯)使用foreach循环"; //换行显示print_r($data);//打印结果和上面一样注意:data后面有一个数组符号[],为什么呢?遍历关联数组遍历并输出关联数组的所有值,可以使用 foreach (array_expression as $key => $value) 循环,如下: "百度","马云" => "阿里","马化腾" => "腾讯");foreach ($arr as $key => $value) { $data[$key] = $value;}echo "
"; //换行显示print_r($data);打印结果显示:Array( [李彦宏] => 百度 [马云] => 阿里 [马化腾] => 腾讯)注意到没?此时的data后是[$key]?而不是[]一个数关联数组一个是数字索引数组,增加删除数组的元素在数组元素的尾部增加array_push(array,value1,value2...) 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。该函数等于多次调用 $array[] = $value。"; //换行显示print_r($arr);打印结果显示:Array( [0] => 百度 [1] => 阿里 [2] => 腾讯 [3] => 知乎 [4] => 微博)在数组元素的开始增加array_unshift(array,value1,value2,value3...) 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。"; //换行显示print_r($arr);打印结果显示:Array( [0] => 知乎 [1] => 微博 [2] => 百度 [3] => 阿里 [4] => 腾讯)在数组元素的尾部删除array_pop(array) 函数删除数组中的最后一个元素。"; //换行显示print_r($arr);打印结果显示:Array( [0] => 百度 [1] => 阿里)在数组元素的开始删除array_shift(array) 函数删除数组中第一个元素 并可以返回被删除元素的值。"; //换行显示print_r($arr);打印结果显示:Array( [0] => 阿里 [1] => 腾讯)移除数组中重复的值array_unique(array) 函数移除数组中的重复的值,并返回结果数组。";print_r($data);打印结果显示:Array( [0] => 百度 [1] => 阿里 [2] => 腾讯 [4] => 微博)定位数组元素搜索数组中存在的值in_array(search,array,type)检查数组中是否存在指定的值。如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。如果没有在数组中找到参数,函数返回 false。";print_r($data);打印结果显示:Array( [0] => 百度 [1] => 阿里 [2] => 腾讯 [3] => 知乎)array_splice(array,start,length,array) 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。";print_r($arr1);打印结果显示:Array( [0] => 知乎 [1] => 微博 [2] => 腾讯)数组合并、拆分、比较array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加。";print_r($data);打印结果显示:Array( [0] => 百度 [1] => 阿里 [2] => 腾讯 [3] => 知乎 [4] => 微博)递归追加数组array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并到一起,形成一个联合的数组。两者之间的区别在于,当某个输入数组中的某个键已经存在于结果数组中时该函数会采取不同的处理方法。array_merge()会覆盖前面存在的键/值对,将其替换为当前输入数组中的键/值对,而array_merge_recursive()将两个值合并在一起,形成一个新的数组并以原有的键作为数组名。其形式为:$arr= array('one'=>'C', 'one'=>'B'); $arr1= array('three'=>'1', 'one'=>'2'); $arr2= array_merge_recursive($arr, $arr1); echo "