数组能够在单个变量中存储多个值:
什么是数组?
数组是一种特殊的变量,可以在单个变量中存储多个值。
如果您有一个项目列表(例如,汽车名称列表),请将其存储到单个变量中,如下所示:
$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,我们会详细为你一一解答你心中的疑难。