可使用array_keys配合foreach、array_column与array_keys组合、array_walk_recursive、array_map或for循环五种方法提取PHP二维数组所有键名,分别适用于分层处理、去重汇总、递归收集、简洁映射及兼容低版本等场景。

如果您需要从PHP二维数组中提取所有键名,可以通过多种内置函数实现。以下是几种常用的方法:
一、使用array_keys()配合foreach循环
该方法通过遍历外层数组,对每一维子数组单独调用array_keys()获取其键名,适用于需分别处理各子数组键名的场景。
1、定义一个二维数组,例如:$arr = [['name' => 'Alice', 'age' => 25], ['name' => 'Bob', 'city' => 'Shanghai']];
2、使用foreach遍历数组,对每个子数组调用array_keys():foreach ($arr as $sub) { $keys[] = array_keys($sub); }
立即学习“PHP免费学习笔记(深入)”;
3、最终$keys将是一个二维结构,每个元素对应原数组中对应子数组的键名列表。
二、使用array_column()结合array_keys()提取特定层级键名
当仅需获取外层数组的键名(即第一维索引),可直接对原数组调用array_keys();若需获取所有子数组中出现过的全部唯一键名,需先合并键名再去重。
1、获取外层键名:$outer_keys = array_keys($arr);
2、初始化空数组用于收集所有内层键名:$all_inner_keys = [];
3、遍历$outer_keys,对每个索引对应的子数组执行array_keys()并合并至$all_inner_keys:foreach ($outer_keys as $k) { $all_inner_keys = array_merge($all_inner_keys, array_keys($arr[$k])); }
4、去除重复键名:$unique_inner_keys = array_unique($all_inner_keys);
三、使用array_walk_recursive()配合引用变量收集键名
该方法能递归访问数组所有层级的键,但需额外逻辑区分二维结构中的第一层与第二层键;实际应用中常配合回调函数与引用参数累积键名。
还木有评论哦,快来抢沙发吧~