You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过指定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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:07:03