一、概念
PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。
二、数组的创建
可以用 array() 语言结构来新建一个数组。它接受任意数量用逗号分隔的 键(key) => 值(value)对。
array( key => value , ... ) // 键(key)可是是一个整数 integer 或字符串 string // 值(value)可以是任意类型的值
最后一个数组单元之后的逗号可以省略。通常用于单行数组定义中,例如常用 array(1, 2) 而不是 array(1, 2, )。对多行数组定义通常保留最后一个逗号,这样要添加一个新单元时更方便。
注:
1、自 5.4 起可以使用短数组定义语法,用 [] 替代 array()。
2、经常也会使用explode字符串分隔函数来创建数组。
示例:
<?php $array = array( "foo" => "bar", "bar" => "foo", ); // 自 PHP 5.4 起 $array = [ "foo" => "bar", "bar" => "foo", ]; ?>
注:key 为可选项。如果未指定,PHP 将自动使用之前用过的最大 integer 键名加上 1 作为新的键名。
如下例,通过var_dump函数输出数组:
<?php $array = array( "a", "be", 6 => "c", "dfg", ); var_dump($array); ?> //输出结果为: array(4) { [0]=> string(1) "a" [1]=> string(2) "be" [6]=> string(1) "c" [7]=> string(3) "dfg" }
注:以上未指定key键,而通过数值递增出现的数组习惯上我们称之为数值数值(即每个元素都有一个数字ID键)。与之相对应的是关联数组(即在存储值时,通过key->vaule的方式对应)。如:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
三、多维数组
多维数组可以理解为数组的嵌套,即数组里的元素也是一个数组。如:
<?php $families = array ( "Griffin"=>array("Peter", "Lois", "Megan"), "Quagmire"=>array("Glenn"), "Brown"=>array("Cleveland", "Loretta", "Junior") ); //var_dump($families); print_r($families); ?> //执行后其输出结果为: Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) )
四、修改数组内容
常用用来修改数组值的方法是用方括号的语法来修改数组:$arr[] = value ,如:
$arr = array("a" => "视频", "b"=>"教程", "c" => "六"); $arr['a'] = "运维"; $arr['c'] = "之路"; print_r($arr);
注:在向数组内增加元素时,经常会用到另外一个函数array_push() 。