如何查找PHP多维数组中指定user_id对应的父数组键名?
解决方案
方法一:循环遍历(兼容所有PHP版本)
直接遍历原数组,逐个校验子数组的user_id,匹配到目标值时返回对应的父数组键:
$original = [ ['user_id' => 1234], ['user_id' => 9876] ]; $targetUserId = 9876; $parentKey = null; foreach ($original as $key => $item) { if (isset($item['user_id']) && $item['user_id'] === $targetUserId) { $parentKey = $key; break; // 找到后立即终止循环,提升效率 } } // 输出结果 echo $parentKey; // 输出 1
方法二:array_column + array_search(PHP 5.5+)
用array_column提取所有子数组的user_id值并保留原父键,再通过array_search快速定位目标值对应的键:
$original = [ ['user_id' => 1234], ['user_id' => 9876] ]; $targetUserId = 9876; // 提取所有user_id,保留原数组的键结构 $userIdMap = array_column($original, 'user_id'); $parentKey = array_search($targetUserId, $userIdMap); echo $parentKey; // 输出 1
额外说明
- 如果数组中存在多个相同的
user_id,array_search仅返回第一个匹配的键;循环遍历的方式可修改为收集所有匹配的键。 - 若子数组可能缺失
user_id键,建议保留isset($item['user_id'])的校验,避免触发错误。
内容的提问来源于stack exchange,提问作者MarcusDeroy
相关产品推荐
相关产品推荐

