
数组能够在单个变量中存储多个值:
什么是数组?
数组是一种特殊的变量,可以在单个变量中存储多个值。
如果您有一个项目列表(例如,汽车名称列表),请将其存储到单个变量中,如下所示:
$cars1="沃尔沃";
$cars2="宝马";
$cars3="";
但是,如果你想遍历数组并找到特定的一个,该怎么办?如果数组不仅有 3 个项目,而是 300 个项目,该怎么办?
解决办法是创建一个数组!
数组可以在单个变量中存储多个值,并且您可以根据键访问这些值。
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:
大批();
在 PHP 中,有三种类型的数组:
PHP 数字数组
有两种方法可以创建数值数组:
自动分配 ID 密钥(ID 密钥始终从 0 开始):
$cars=array("沃尔沃","宝马","");
手动分配的 ID 键:
$cars[0]="沃尔沃";
$cars[1]="宝马";
$汽车[2]="";
下面的示例创建一个名为 $cars 的数字数组,为该数组分配三个元素,然后打印包含数组值的文本:

获取数组的长度 - count() 函数
count() 函数返回数组的长度(元素的数量):
迭代数组值
要迭代并打印数字数组中的所有值,可以使用 for 循环,如下所示:

PHP 关联数组
关联数组是使用您分配给数组的特定键的数组。
有两种方法可以创建关联数组:
$age=array("彼得"=>"35","本"=>"37","乔"=>"43");
或者:
$age['彼得']="35";
$age['本']="37";
$age['乔']="43";
然后可以在脚本中使用指定的键:
迭代关联数组
要迭代并打印关联数组中的所有值,可以使用循环,如下所示:

多维数组
多维数组将在PHP高级教程部分详细介绍。

笔记:
语法结构提供了一种简单的数组遍历方法。它只能应用于数组和对象。如果您尝试将其应用于其他数据类型的变量或未初始化的变量,则会发出错误消息。有两种语法:
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
第一种形式迭代给定的数组。每次循环时,当前单元格的值都会赋给 $value,并且数组内的指针会前进一步(因此下一个循环将获取下一个单元格)。
第二种形式执行相同的操作,只是每次循环时当前单元格的键也会分配给变量 $key。
在对数组进行排序的时候发现sort和rsort完成后,输出的时候原来的键值丢失了,变成了数字索引。
"val1","key6"=>"val6","key3"=>"val1","key5"=>"val6","key4"=>"val8"); echo "sort(\$a)=".PHP_EOL; sort($a); var_dump($a); ?>
输出如下:
sort($a)=
array(5) {
[0]=>
string(4) "val1"
[1]=>
string(4) "val1"
[2]=>
string(4) "val6"
[3]=>
string(4) "val6"
[4]=>
string(4) "val8"
}
"val1","key6"=>"val6","key3"=>"val1","key5"=>"val6","key4"=>"val8");
echo "rsort(\$a)=".PHP_EOL;
rsort($a);
var_dump($a);
?>
输出如下:
rsort($a)=
array(5) {
[0]=> string(4) "val8"
[1]=> string(4) "val6"
[2]=> string(4) "val6"
[3]=> string(4) "val1"
[4]=> string(4) "val1"
}
问题:“在对数组进行排序时,发现sort和rsort完成后,输出时原来的键值丢失,变成了数字索引。”
正确答案:要按升序和降序对关联数组进行排序,请使用
接下来,我们使用asort()函数根据关联数组的值对数组进行升序排序。
"val1","key6"=>"val6","key3"=>"val1","key5"=>"val6","key4"=>"val8"); echo "asort(\$a)=".PHP_EOL; asort($a); var_dump($a); ?>
输出如下:
asort($a)=
array(5) {
["key1"]=>
string(4) "val1"
["key3"]=>
string(4) "val1"
["key6"]=>
string(4) "val6"
["key5"]=>
string(4) "val6"
["key4"]=>
string(4) "val8"
}

扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1