array_keys()获取外层键名,递归函数遍历所有层级键名,array_walk_recursive()配合引用收集键名,var_export()正则提取键名,print_r()结合输出缓冲解析键名。

一、使用array_keys()获取二维数组的外层键名
array_keys()函数可直接提取数组顶层键名,适用于仅需查看第一级索引结构的场景。该函数返回一个包含所有键名的索引数组,不改变原数组结构。
1、定义一个二维数组,例如:$arr = ['user' => ['name' => 'Alice', 'age' => 30], 'admin' => ['level' => 5, 'active' => true]];
2、调用array_keys($arr),得到键名列表:['user', 'admin']
3、遍历输出每个键名:foreach (array_keys($arr) as $key) { echo $key . "\n"; }
立即学习“PHP免费学习笔记(深入)”;
二、递归遍历并打印所有键名(含内层)
通过自定义递归函数可逐层展开二维数组,捕获每一级的键名及其嵌套层级,适合需要完整键路径分析的情形。
1、定义递归函数:function printAllKeys($array, $prefix = '') { foreach ($array as $key => $value) { echo $prefix . $key . "\n"; if (is_array($value)) { printAllKeys($value, $prefix . $key . '.'); } } }
2、传入目标二维数组调用该函数:printAllKeys($arr);
3、输出结果中将显示类似:user
user.name
user.age
admin
admin.level
admin.active
三、使用array_walk_recursive()配合引用变量收集键名
array_walk_recursive()自动深入到最内层数组元素,结合闭包与引用变量可在不显式递归的情况下累积所有键名信息。
1、初始化空数组用于存储键名:$keys = [];
2、调用array_walk_recursive并传入匿名函数,利用debug_backtrace或额外参数无法直接获取键名,因此需改用array_keys配合foreach模拟递归行为——此处采用替代方案:先用foreach外层键,再对每个子数组调用array_keys。
还木有评论哦,快来抢沙发吧~