一、什么是数组
数组是一个能在单个变量中存储多个值的特殊变量。
如果有一个项目清单(例如:序号名单),将其存储到单个变量中,如下所示:
$a=1;$b=2;$c=3;
然而,如果想要遍历数组并找出特定的一个呢?如果数组的项不只是3个而是300个呢?
解决办法就是创建一个数组!
数组可以在单个变量中存储多个值,并且可以根据键访问其中的值。
二、创建数组
在PHP中,有三种类型的数组:
数值数组 - 带有数字ID键的数组;
关联数组 - 带有指定的键的数组,每个键关联一个值;
多维数组 - 包含一个或多个数组的数组;
举例:
数值数组:
自动分配ID键(ID键总是从0开始的):
$cars=array("Volvo","bmw","Toyota");
人工分配ID键:
$cars[0]="Volvo";
$cars[1]="bmw";
$cars[2]="Toyota";
获取数组的长度 - count()函数:
<?php
$cars=array("Volvo","bmw","Toyota");
echo count($cars);
?>
创建并打印数值数组中的所有值,可以使用for循环:
<?php
$cars=array("Volvo","bmw","Toyota");
$arrlength=count($cars);
for($x=0;$arrlength;$x++){
echo$cars[$x];
echo"<br>";
}
?>
关联数组:
这里有两种创建关联数组的方法:
第一种方法:
$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循环:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value){
echo"Key=".$x.",Value=".$x_value;
echo"<br>";
}
三、数组排序
数组中的元素可以按字母或数字顺序进行降序或升序排序
sort() -对数组进行升序排序
rsort() -对数组进行降序排序
asort() -根据关联数组的值,对数组进行升序排序
ksort() -根据关联数组的键,对数组进行升序排序
arsort() -根据关联数组的值,对数组进行降序排序
krsort() -根据关联数组的键,对数组进行降序排序
举例:
sort() -对数组进行升序排序:
<?php
$numbers=array(4,6,1,8,3);
sort($numbers);
?>
rsort() -对数组进行降序排序:
<?php
$numbers=array(4,6,1,8,3);
rsort($numbers);
?>
asort() -根据关联数组的值,对数组进行升序排序:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age)
?>
ksort() -根据关联数组的键,对数组进行升序排序:就是按照a、b、c、d、e、f、g来排序:
<?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)
?>
四、总结
PHParray参考手册:
https://www.runoob.com/php/php-ref-array.html
1、数组及数组类型
2、数组排序
演示代码如下:
<?php
//创建一个数组
$cars=array("沃尔沃","宝马","丰田");
echo"我喜欢的车是,".$cars[0].$cars[1].$cars[2]."<br>";
//获取数组的长度
echo $carsNum=count($cars)."<br>";
//for循环遍历出这个数组的全部内容
for($i=0;$i<$carsNum;$i++){
echo $cars[$i];
echo"<br>";
}
//创建一个关联数组
$age=array("chen"=>"18","ze"=>"27","hui"=>"25");
echo"ze已经".$age['ze']."岁了<br>";
//使用foreach打印关联数组
foreach($age as $x=>$x_value){
echo"键名为:".$x."键值为:".$x_value;
echo"<br>";
}
//sort排序-升序
$num=array(1,5,9,3,4,6);
sort($num);
var_dump($num);
echo"<br>";
//降序排序
rsort($num);
var_dump($num);
//关联数组键值升序
echo"<br>";
asort($age);
var_dump($age);
//关联数组键值降序
echo"<br>";
arsort($age);
var_dump($age);
//关联数组键名升序
echo"<br>";
ksort($age);
var_dump($age);
//关联数组键名降序
echo"<br>";
krsort($age);
var_dump($age);
代码效果如下: