php中怎么输出数组中的键名_php输出数组键名遍历与显示技巧

PHP中查看数组键名有五种方法:一、array_keys()获取全部键名;二、foreach遍历提取键名;三、while+each()兼容旧版;四、for循环配合array_keys;五、var_export结合正则提取。

如果您需要在PHP中查看数组的键名,但不确定如何正确提取和显示它们,则可能是由于对数组遍历函数或键值操作不熟悉。以下是实现该目标的具体方法:

一、使用array_keys()函数获取全部键名

array_keys()函数用于返回数组中所有键名组成的新数组,适用于索引数组和关联数组,可直接输出或进一步处理。

1、定义一个包含键名的数组,例如 $arr = ['name' => 'Alice', 'age' => 25, 'city' => 'Beijing'];

2、调用 $keys = array_keys($arr); 获取键名列表。

3、使用 print_r($keys); 或 var_dump($keys); 输出键名数组。

4、若需逐行显示,可配合 foreach 循环:foreach ($keys as $key) { echo $key . "
"; }

二、使用foreach遍历并单独获取键名

foreach语句支持同时获取键名和值,当仅需键名时,可忽略值变量,专注提取键部分,灵活性高且无需额外函数。

1、声明数组 $data = [0 => 'apple', 1 => 'banana', 'type' => 'fruit'];

2、编写 foreach ($data as $k => $v) { echo "键名:" . $k . "
"; }

3、若只关心键名,可省略 $v,写为 foreach ($data as $k) { echo "键名:" . $k . "
"; } ——此写法仅适用于PHP 7.4+且数组值不参与逻辑时。

三、使用while + each()组合(兼容旧版本PHP)

each()函数返回当前指针位置的键值对并移动指针,配合while可实现逐个读取键名,适合PHP 5.x至7.2环境,但PHP 8.0已移除此函数。

1、初始化数组 $list = ['a' => 1, 'b' => 2, 'c' => 3];

2、重置数组内部指针:reset($list);

3、执行 while ($element = each($list)) { echo "键名:" . $element['key'] . "
"; }

四、使用for循环配合array_keys(适用于数字索引键名)

当数组键名为连续数字时,可先用array_keys()获取键名数组,再通过for循环按索引访问,便于控制输出顺序或范围。

1、创建数组 $nums = [10, 20, 30];

2、获取键名:$indices = array_keys($nums);

3、计算长度:$len = count($indices);

4、执行 for ($i = 0; $i $indices[$i] . "
"; }

五、使用var_export()配合true参数获取可读键名结构

var_export()能以可解析的PHP代码格式输出数组,设置第二个参数为true时返回字符串而非直接打印,便于调试键名结构。

1、定义 $sample = ['id' => 1, 'status' => 'active'];

2、执行 $exported = var_export($sample, true);

3、使用 strpos() 或正则提取键名部分,例如 preg_match_all("/'([^']+)'\s*=>/", $exported, $matches);

4、输出匹配结果:print_r($matches[1]); 其中每个元素均为原始键名字符串