PHP 数组怎么取键值

日常做网页的时候,总免不了要处理一堆数据,比如商品列表、用户信息这些,大多时候都得用PHP数组来装。就像你整理抽屉,把袜子、内裤、T恤分类放好,数组就是这样的“数据抽屉”,每个东西都有个对应的“位置标签”,这个标签叫“键”,里面装的东西就是“值”。今天就说说,怎么从这个“数据抽屉”里,轻松取出想要的键和值。

先搞懂:PHP数组的键和值是什么

举个最生活化的例子:你手机通讯录里存的联系人,比如“妈妈”对应手机号138XXXX1234,“爸爸”对应手机号139XXXX5678。这里的“妈妈”“爸爸”就是数组的键,对应的手机号就是值。

PHP 数组怎么取键值

PHP里的数组有两种常见类型:一种是像通讯录这样的“关联数组”,键是咱们能看懂的字符串;另一种是“索引数组”,键是从0开始的数字,比如你把买奶茶的顺序记成['珍珠奶茶','芋泥奶茶','绿茶'],这里的0对应珍珠奶茶,1对应芋泥奶茶,2对应绿茶,键就是数字索引。两种数组的取值方法其实差不太多。

最常用的:直接用键取对应的值

如果已经知道要找的键,直接用数组名[键]的方式就能取到值,这是最简单的方法,适合大部分日常场景。

比如你做一个早餐小程序,把早餐的信息存在数组里:

`php

$breakfast = [

'包子' => 3, // 键是“包子”,值是价格3元

'豆浆' => 2,

'油条' => 4

];

`

想知道豆浆的价格,就写echo $breakfast['豆浆'];,输出的结果就是2,完全不用复杂的操作。

如果是索引数组,比如刚才的奶茶数组$milkTea = ['珍珠奶茶','芋泥奶茶','绿茶'];,想取第二个(键是1)的芋泥奶茶,就写echo $milkTea[1];,结果就是芋泥奶茶。

不知道键的话:遍历数组取出所有键值

有时候你可能不知道数组里有多少内容、键是什么,比如要把整个通讯录的联系人列出来,这时候就得把所有键和值都取出来,用foreach循环就很方便。

还是用早餐数组举例,要把每一种早餐和价格都打印出来,写这样的代码:

`php

foreach ($breakfast as $key => $value) {

echo "早餐是:".$key.",价格是:".$value."元<br>";

}

`

运行之后,页面会依次出现“早餐是:包子,价格是:3元”“早餐是:豆浆,价格是:2元”“早餐是:油条,价格是:4元”,把所有键和值都列得清清楚楚,就像对着抽屉一个个数里面的东西。

如果是索引数组,$key会自动变成0、1、2这样的数字,$value就是对应的值,比如遍历奶茶数组,就能依次取出三个奶茶的名字。

特殊需求:单独取所有键或者所有值

有时候你只需要数组里的所有键,比如要做一个下拉菜单的选项名,不用管对应的价格,这时候可以用array_keys()函数。比如要把早餐的所有名字取出来,写$allKeys = array_keys($breakfast);,得到的$allKeys就是['包子','豆浆','油条']这个索引数组。

反过来,如果只需要所有值,比如统计早餐的总价格,用array_values()函数就行,写$allValues = array_values($breakfast);,得到的$allValues就是[3,2,4],直接用来算总价就行。

其实PHP数组取键值的逻辑,就跟你整理日常物品的逻辑一样:知道具体位置就直接拿,不知道就挨个找,要清单就单独抽标签或者抽物品,没有复杂的规则,多试两次就能熟练。

上一篇 Swift语言的核心特性及在跨平台开发中的实用优势科普