数组能够在单个变量中存储多个值:
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
数组是什么?
数组是一个能在单个变量中存储多个值的特殊变量。
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:
在 PHP 中,有三种类型的数组:
1、数值数组 - 带有数字 ID 键的数组
2、关联数组 - 带有指定的键的数组,每个键关联一个值
3、多维数组 - 包含一个或多个数组的数组
获取数组的长度 - 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"=>"37","Joe"=>"43");
第一次看到这个关联数组,原来就是键值对形式。
$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 循环,如下所示:
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 数组排序
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列
sort() - 对数组进行升序排列
下面的实例将 $cars 数组中的元素按照字母升序排列:
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?>
运行结果:
Array
(
[0] => BMW
[1] => Toyota
[2] => Volvo
)
下面的实例将 $numbers 数组中的元素按照数字升序排列:
<?php
$numbers=array(4,6,2,22,11);
sort($numbers);
?>
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 11
[4] => 22
)
rsort() - 对数组进行降序排列
下面的实例将 $cars 数组中的元素按照字母降序排列:
<?php
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
?>
运行结果
Array
(
[0] => Volvo
[1] => Toyota
[2] => BMW
)
下面的实例将 $numbers 数组中的元素按照数字降序排列:
<?php
$numbers=array(4,6,2,22,11);
rsort($numbers);
?>
Array
(
[0] => 22
[1] => 11
[2] => 6
[3] => 4
[4] => 2
)
其他就不一一举例子了,蛮简单的
然后老传统,来写一个冒泡排序吧
<?php
$num = array(1,3,2,10,7,6,0);
$mycount = count($num);
//echo $mycount;
for($i = 0;$i<$mycount-1;$i++)
{
for($j = 0;$j<$mycount-1-$i;$j++)
{
if($num[$j]>$num[$j+1])
{
$temp = $num[$j];
$num[$j] = $num[$j+1];
$num[$j+1] = $temp;
}
}
}
for($i = 0;$i<count($num);$i++)
{
echo $num[$i];
echo "<br>";
}
?>