首页 > 代码库 > 2017.7.22

2017.7.22

1、PHP中的数组简介

数组能够在一个变量名中存储一个或多个值。

在 PHP 中, array() 函数用于创建数组:array();

数组能够在单一变量名中存储许多值,并且您能够通过引用下标号来访问某个值。

例如:

<?php
$cars=array("Volvo","BMW","SAAB");
echo$cars”;
?>
//也可以直接echo "$cars[1]",用于打印输出BMW这个值。

在 PHP 中,有三种数组类型

  • 索引数组 - 带有数字索引的数组,引用时下标为数字,$a=$cars[1]。
  • 关联数组 - 带有指定键的数组,引用时下标为键值,$a=$carp["user"]。
  • 多维数组 - 包含一个或多个数组的数组。如果一维数组的值也是一个数组那么它就是一个二维数组了。

PHP 索引数组

两种创建索引数组的方法:

索引是自动分配的(索引从 0 开始):

$cars=array("Volvo","BMW","SAAB");

或者也可以手动分配索引:

$cars[0]="Volvo";$cars[1]="BMW";$cars[2]="SAAB";

获得数组的长度 - count() 函数:echo $arrayLength=count($cars);

PHP 关联数组

关联数组是使用您分配给数组的指定的数组。

有两种创建关联数组的方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");//Joe即为键值

或者:

$age[‘Peter‘]="35";
$age[‘Ben‘]="37";
$age[‘Joe‘]="43";

随后可以在脚本中使用指定键:

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
echo "Peter is " . $age[‘Peter‘] . " years old.";
?>

遍历索引数组

如需遍历并输出索引数组的所有值,您可以使用 for 循环,就像这样:

<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {
  echo $cars[$x];
  echo "<br>";
}
?>

遍历关联数组

如需遍历并输出关联数组的所有值,您可以使用 foreach 循环,就像这样:

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value="http://www.mamicode.com/. $x_value;
  echo "<br>";
}
?>
//其中$age为要遍历的数组名,$x用来存储关联数组的键值,键值可以为下标值或者是字符串,$x_value为存储所取出的当前元素的数值。此过程,把当前元素的数值赋给$x_value,当前元素的键值也会在每次循环中被赋给变量$x

 

PHP多维数组

一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。依照这种方式,我们可以创建二维或者三维数组。

注释:数组的维度指示您需要选择元素的索引数。对于二维数组,您需要两个索引来选取元素,对于三维数组,您需要三个索引来选取元素。

例如二维数组:

<?php 
// 二维数组: 
$cars = array 
( 
    array("Volvo",100,96), 
    array("BMW",60,59), 
    array("Toyota",110,100) 
); 
print_r($cars); 
?>

其运行结果如下:

Array
(
    [0] => Array
        (
            [0] => Volvo
            [1] => 100
            [2] => 96
        )

    [1] => Array
        (
            [0] => BMW
            [1] => 60
            [2] => 59
        )

    [2] => Array
        (
            [0] => Toyota
            [1] => 110
            [2] => 100
        )

)

创建一个自动分配 ID 键的多维数组:

<?php 
$sites = array 
( 
    "runoob"=>array 
    ( 
        "菜鸟教程", 
        "http://www.runoob.com" 
    ), 
    "google"=>array 
    ( 
        "Google 搜索", 
        "http://www.google.com" 
    ), 
    "taobao"=>array 
    ( 
        "淘宝", 
        "http://www.taobao.com" 
    ) 
); 
print("<pre>"); // 格式化输出数组 
print_r($sites); 
print("</pre>"); 
?>
Array
(
    [runoob] => Array
        (
            [0] => 菜鸟教程
            [1] => “http://www.runnob.com"
        )

   ......以下类似。

)

 

echo $sites[‘taobao‘][0] . ‘地址为:‘ . $sites[‘taobao‘][1];

上面的代码将输出:淘宝地址为:http://www.taobao.com

 

2017.7.22