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

如何访问PHP中array_filter过滤后数组的id、key、value字段?

访问array_filter过滤后数组的字段

你用array_filter过滤数组后,得到的结果会保留原数组的键名,所以返回的$start是一个带原键(比如你的例子里的"1")的关联数组,直接按索引访问会有问题,下面是几种可行的访问方式:

方式一:转为索引数组后取第一个元素

用array_values()将关联数组转为索引数组,再取索引0的元素:

$start = array_filter($array, function ($var) {
    return ($var['key'] == 'emails_html_body_start');
}); 
// 转为索引数组并获取第一个匹配项
$item = array_values($start)[0];
// 访问字段
echo $item['id'];    // 输出:3
echo $item['key'];   // 输出:emails_html_body_start
echo $item['value']; // 输出:value

或者用reset()函数直接获取数组的第一个元素:

$item = reset($start);

方式二:遍历过滤结果

如果不确定匹配项的数量,或者需要处理多个匹配结果,直接遍历数组即可:

$start = array_filter($array, function ($var) {
    return ($var['key'] == 'emails_html_body_start');
}); 
foreach ($start as $item) {
    echo $item['id'];
    echo $item['key'];
    echo $item['value'];
}

方式三:直接通过原键访问(不推荐)

如果你明确知道过滤后结果的键名(比如例子里的"1"),也可以直接用键名访问,但这种方式不灵活,原数组键变化后会失效:

echo $start['1']['id'];

内容的提问来源于stack exchange,提问作者Filip Vnenčák

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:15:33