PHP 数组
PHP 数组
数组提供了一种快速,方便地管理一组相关数据的方法,是php程序设计中的重要内容。
php中将数组分为一维数组,二维数组和多维数组,但无论是一维还是多维,可以统一将数组分为数字索引数组和关联数组两种。
数组能够在单个变量中存储多个值:
实例
<?php $phones=array("Iphone","Nokia","Oppo"); echo "I like " . $phones[0] . ", " . $phones[1] . " and " . $phones[2] . "."; ?>
数组是什么?
数组是一个能在单个变量中存储多个值的特殊变量。
如果您有一个项目清单(例如:手机名字的清单),将其存储到单个变量中,如下所示:
$phones1
="Iphone";
$phones2
="Nokia";
$phones3
="Oppo";
然而,如果您想要遍历数组并找出特定的一个呢?如果数组的项不只 3 个而是 300 个呢?
解决办法是创建一个数组!
数组可以在单个变量中存储多个值,并且您可以根据键访问其中的值。
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
· 数值数组 - 带有数字 ID 键的数组
· 关联数组 - 带有指定的键的数组,每个键关联一个值
· 多维数组 - 包含一个或多个数组的数组
PHP 数值数组(索引数组)
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
$phones
=array("Iphone","Nokia","Oppo");
人工分配 ID 键:
$phones[0]
="Iphone";
$phones[1]
="Nokia";
$phones[2]
="Oppo";
下面的实例创建一个名为 $cars 的数值数组,并给数组分配三个元素,然后打印一段包含数组值的文本:
实例
<?php $cars=array("Volvo","BMW","Toyota"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?>
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):
实例
<?php $cars=array("Volvo","BMW","Toyota"); echo count($cars); ?>
语法:
int count ( mixed $var [, int $mode = COUNT_NORMAL ] )
echo count($names);
遍历数值数组
遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:
实例
<?php $cars=array("Volvo","BMW","Toyota"); $arrlength=count($cars); for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>"; } ?>
PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
除了数组索引数组,PHP还有一种关联数组,在其它计算机语言中,一般叫做hash或者map。
$info = [
'name' => 'andy',
'age' => 18,
'gender' => 'male'
];
关联数组使用数字下标是无法获取数据的,譬如$info[0]的值是空,我们需要使用键作为下标$info[‘age’]的值是18 。
这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
随后可以在脚本中使用指定的键:
实例
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); echo "Peter is " . $age['Peter'] . " years old."; ?>
遍历关联数组
遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:
实例
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
多维数组
多维数组 将在 PHP 高级教程部分做详细介绍。
打印数组
我们可以使用echo去打印一个字符串、整型、浮点型,但是我们不能用它来打印数组
数组是由一系列的元素组成的,如果要打印,那么打印的应该是每个元素,而不是整个数组
我们一般使用print_r来打印数组(当然用var_dump也可以,但是结构上不清晰)
bool print_r ( mixed $expression [, bool $return ] )
print_r($names);
当第二个参数为true时,print_r不会直接打印数组,而是将打印的内容作为字符串返回
echo print_r($names, true);
获取数组元素
索引数组中的每个元素都有一个自增长的序号,默认情况下,0表示第一个元素,对于
$names = ['andy', 'tom', 'jack'];
我们可以使用数组变量名后面加方括号的方式来获取数组中的元素,譬如,用$names[0]来获取到andy,同理$names[2]代表jack
数组的维度:一维
$arr = ['王刚', '张丽', '刘伟'];
假设数组变量名为$arr,获取“张丽”的方式:$arr[1]
多维数组
超过一维的数组,我们都可以称为多维数组
我们需要明白,数组不一定就是一个下标和值的简单列表,实际上,数组中的每个元素还可以是另一个数组
因此如果一维数组中的数组元素又是一个数组,那么它就成为了二维数组
数组的维度:二维
$arr = [
['王刚', '张丽', '刘伟'],
['孙丽', '李强', '李国庆'],
['赵园园', '丁丽丽']
];
echo count($arr);
echo count($arr, true);
获取“李强”的方式:$arr[1][1]
数组的维度:三维
$arr = [
[
['王刚', '张丽', '刘伟'],
['孙丽', '李强', '李国庆'],
['赵园园', '丁丽丽']
],
[
['宋红', '马小丽'],
['张颖', '刘军', '黄涛'],
['杜磊', '朱婷婷']
],
];
echo count($arr);
echo count($arr, true);
获取“刘军”的方式:$arr[1][1][1]
完整的 PHP Array 参考手册
如需查看所有数组函数的完整参考手册,请访问我们的 PHP Array 参考手册。
该参考手册提供了每个函数的简要描述和应用实例!