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 参考手册。

该参考手册提供了每个函数的简要描述和应用实例!


继续学习
||
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

PHP快速入门免费教程