什么是数组?数组就是被命名的用来存储一系列数值的地方。数组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 "express
"; //换行显示 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 "