PHP 数组
数组能够在单个变量中存储多个值:
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
输出:
I like Volvo, BMW and Toyota.
数组是什么?
数组就是一个键值对组成的语言结构,键类似于酒店的房间号,值类似于酒店房间里存储的东西。
如果你去某个酒店住店,服务员会告诉你房间号是多少,具体房间里有存储了什么,那就需要根据房间号进到房间里才知道了。
创建数组
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
• 数值数组 - 带有数字 ID 键的数组
• 关联数组 - 带有指定的键的数组,每个键关联一个值
• 多维数组 - 包含一个或多个数组的数组
PHP 数值数组(索引数组)
索引和关联两个词都是针对数组的键而言的。
两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
数值数组(索引数组)是指数组的键是整数的数组,并且键的整数顺序是从0开始,依次类推。
<?php
//创建一个索引数组,索引数组的键是“0”,值是“苹果”
$fruit = array("苹果","香蕉","菠萝");
print_r($fruit);
?>
输出:
Array
(
[0] => 苹果
[1] => 香蕉
[2] => 菠萝
)
索引数组赋值有三种方式:
第一种:用数组变量的名字后面跟一个中括号的方式赋值,当然,索引数组中,中括号内的键一定是整数。比如,$arr[0]='苹果';
第二种:用array()创建一个空数组,使用=>符号来分隔键和值,左侧表示键,右侧表示值。当然,索引数组中,键一定是整数。比如,array('0'=>'苹果');
第三种:用array()创建一个空数组,直接在数组里用英文的单引号’或者英文的双引号”赋值,数组会默认建立从0开始的整数的键。比如array('苹果');
这个数组相当于array('0'=>'苹果');
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>
输出:
3
遍历数值数组
遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
输出:
Volvo
BMW
Toyota
PHP 关联数组
关联数组是使用你分配给数组的指定的键的数组。
两种创建关联数组的方法:
$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");
print_r($age);
echo "Peter is " . $age['Peter'] . " years old.";
?>
输出:
Array
(
[Peter] => 35
[Ben] => 37
[Joe] => 43
)
Peter is 35 years old.
遍历关联数组
遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
print_r($age);
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
输出:
Array
(
[Peter] => 35
[Ben] => 37
[Joe] => 43
)
Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43
多维数组
一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。依照这种方式,我们可以创建二维或者三维
<?php
// 二维数组:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
print("<pre>"); // 格式化输出数组
print_r($cars);
print("</pre>");
?>
输出:
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
(
"csdn"=>array
(
"CSDN",
"http://www.csdn.net"
),
"google"=>array
(
"Google 搜索",
"http://www.google.com"
),
"taobao"=>array
(
"淘宝",
"http://www.taobao.com"
)
);
print("<pre>"); // 格式化输出数组
print_r($sites);
print("</pre>");
?>
输出:
Array
(
[csdn] => Array
(
[0] => CSDN
[1] => http://www.csdn.net
)
[google] => Array
(
[0] => Google 搜索
[1] => http://www.google.com
)
[taobao] => Array
(
[0] => 淘宝
[1] => http://www.taobao.com
)
)
让我们试着显示上面数组中的某个值:
echo $sites['csdn'][0] . '地址为:' . $sites['csdn'][1];
输出:
CSDN地址为:http://www.csdn.net
PHP 数组排序
数组中的元素可以按字母或数字顺序进行降序或升序排列。
PHP - 数组排序函数
在本章中,我们将一一介绍下列 PHP 数组排序函数:
• sort() - 对数组进行升序排列
• rsort() - 对数组进行降序排列
• asort() - 根据关联数组的值,对数组进行升序排列
• ksort() - 根据关联数组的键,对数组进行升序排列
• arsort() - 根据关联数组的值,对数组进行降序排列
• krsort() - 根据关联数组的键,对数组进行降序排列
sort() - 对数组进行升序排列
将 $cars 数组中的元素按照字母升序排列:
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?>
将 $numbers 数组中的元素按照数字升序排列:
<?php
$numbers=array(4,6,2,22,11);
sort($numbers);
?>
rsort() - 对数组进行降序排列
下面的实例将 $cars 数组中的元素按照字母降序排列:
<?php
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
?>
下面的实例将 $numbers 数组中的元素按照数字降序排列:
<?php
$numbers=array(4,6,2,22,11);
rsort($numbers);
?>
asort() - 根据数组的值,对数组进行升序排列
下面的实例根据数组的值,对关联数组进行升序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
?>
ksort() - 根据数组的键,对数组进行升序排列
下面的实例根据数组的键,对关联数组进行升序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
?>
arsort() - 根据数组的值,对数组进行降序排列
下面的实例根据数组的值,对关联数组进行降序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
?>
krsort() - 根据数组的键,对数组进行降序排列
下面的实例根据数组的键,对关联数组进行降序排列:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
?>
Array函数参考手册:
http://blog.csdn.net/fancie_wong/article/details/53007273#t2
更多PHP相关学习:http://blog.csdn.net/Fancie_Wong/article/category/6498482