如何通过指定key获取PHP多维数组中对应的value值?
解决PHP多维数组中根据动态key获取对应value的问题
针对你给出的多维数组,由于meta_data下的子数组索引不固定,可以通过以下几种方法获取key为course_id对应的value:
方法一:foreach遍历(兼容性最好)
这种方法适合所有PHP版本,逻辑清晰且效率较高,找到目标后立即终止循环:
// 假设原数组为$array $courseValue = null; foreach ($array['meta_data'] as $item) { if ($item['key'] === 'course_id') { $courseValue = $item['value']; break; // 找到目标后停止遍历,避免无效循环 } } // 使用结果:找到则$courseValue为对应值,未找到则为null echo $courseValue; // 输出 FF2342(示例中)
方法二:array_filter过滤(代码更简洁)
利用array_filter筛选出符合条件的子数组,再通过current获取第一个匹配项的value:
// 假设原数组为$array $matchedItems = array_filter($array['meta_data'], function($item) { return $item['key'] === 'course_id'; }); // 提取value,空数组则返回null $courseValue = !empty($matchedItems) ? current($matchedItems)['value'] : null;
方法三:PHP 7.4+ 箭头函数简化版
如果你的PHP版本在7.4及以上,可以用箭头函数让代码更紧凑:
// 假设原数组为$array $matchedItems = array_filter($array['meta_data'], fn($item) => $item['key'] === 'course_id'); $courseValue = $matchedItems ? current($matchedItems)['value'] : null;
补充说明
如果数组中存在多个key为course_id的项,上述方法只会获取第一个匹配项。若需要收集所有对应value,可以将结果存入数组:
$courseValues = []; foreach ($array['meta_data'] as $item) { if ($item['key'] === 'course_id') { $courseValues[] = $item['value']; } } // $courseValues会包含所有匹配的value
内容的提问来源于stack exchange,提问作者herrseiler
相关产品推荐
相关产品推荐

