您现在的位置是:首页 >php教程 >php教程九 数组|排序网站首页php教程
php教程九 数组|排序
PHP 数组
数组能够在单个变量中存储多个值:
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
数组是什么?
数组是一个能在单个变量中存储多个值的特殊变量。
如果您有一个项目清单(例如:车名字的清单),将其存储到单个变量中,如下所示:
$cars1="Volvo";
$cars2="BMW";
$cars3="Toyota";
然而,如果您想要遍历数组并找出特定的一个呢?如果数组的项不只 3 个而是 300 个呢?
解决办法是创建一个数组!
数组可以在单个变量中存储多个值,并且您可以根据键访问其中的值。
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 包含一个或多个数组的数组
PHP 数值数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
$cars=array("Volvo","BMW","Toyota");
人工分配 ID 键:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
下面的实例创建一个名为 $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);
?>
遍历数值数组
遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"36","Joe"=>"37");
$age['Peter']="35";
$age['Ben']="36";
$age['Joe']="37";
脚本中使用指定的键:
<?php
$age=array("Peter"=>"35","Ben"=>"36","Joe"=>"37");
echo "Peter is " . $age['Peter'] . " years old.";
?>
遍历关联数组
遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:
<?php
$age=array("Peter"=>"35","Ben"=>"36","Joe"=>"37");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
多维数组
多维数组是包含一个或多个数组的数组。
在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。
一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组,依照这种方式,我们可以创建二维或者三维数组。
二维数组语法格式:
在这里插入图片描述array ( array (elements...), array (elements...), ... )
以上数组的元素会自动分配键值,从 0 开始:
<?php
// 二维数组:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
?>
以下实例,我们创建了指定键(关联数组)的二维数组:
<?php
$sites = array
(
"dyf"=>array
(
"dyf",
"http://www.xxx.com"
),
"google"=>array
(
"Google 搜索",
"http://www.google.com"
),
"taobao"=>array
(
"淘宝",
"http://www.taobao.com"
)
);
print("<pre>"); // 格式化输出数组
print_r($sites);
print("</pre>");
?>
三维数组
三维数组是在二维数组的基础上再嵌套一层数组,格式如下:
在这里插入图片描述array ( array ( array (elements...), array (elements...), ... ), array ( array (elements...), array (elements...), ... ), ... )
<?php
// 创建三维数组
$myarray = array(
array(
array(1, 2),
array(3, 4),
),
array(
array(5, 6),
array(7, 8),
),
);
// 输出数组信息
print_r($myarray);
?>
上面的数组将输出如下:
Array ( [0] => Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) ) [1] => Array ( [0] => Array ( [0] => 5 [1] => 6 ) [1] => Array ( [0] => 7 [1] => 8 ) ) )
数组排序
数组中的元素可以按字母或数字顺序进行降序或升序排列。
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);
?>