PHP从多维数组按指定id筛选后提取单字段值的方法咨询
调整方案
你原有代码第一行存在语法错误(多了一个多余的右方括号),修正后直接提取过滤结果的第一个元素的lang字段即可。array_filter会保留原数组的键名,用current()函数取首个匹配结果最稳妥,避免因键名非0导致取值报错。
兼容PHP 5.4+ 写法
// 修正原代码多余的右括号 $arr = $wo['products_sub_categories']; // 筛选id匹配的条目 $filtered = array_filter($arr, function($ar) { // 此处的22替换为你实际要匹配的id值 return $ar['id'] == 22; }); // 取lang值,无匹配结果时默认返回空字符串,可自行调整默认值 $lang_value = !empty($filtered) ? current($filtered)['lang'] : ''; // 输出结果 echo $lang_value;
PHP 7.4+ 更简洁的箭头函数写法
$filtered = array_filter($wo['products_sub_categories'], fn($ar) => $ar['id'] == 22); $lang_value = $filtered ? current($filtered)['lang'] : ''; echo $lang_value;
内容的提问来源于stack exchange,提问作者lzy crazy
相关产品推荐
相关产品推荐

