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

如何在Twig中从字符串输出指定help_前缀水果键对应的数据

嘿,这个需求我之前做项目时也碰到过,给你分享两种实用的解决思路,分PHP后端处理和Twig模板内处理两种场景,按需选择就行:

方案一:PHP端预处理数据(推荐)

从MVC的分离原则来看,后端提前把需要的数据整理好再传给模板会更清晰,也更高效。你可以在PHP里过滤出所有以help_为前缀的键值对,再把这个整理后的数组传给Twig:

// 假设你的原始数据是这个数组
$originalData = [
    'help_apple' => '苹果的帮助信息',
    'help_banana' => '香蕉的帮助信息',
    'help_orange' => '橙子的帮助信息',
    'other_key' => '无关数据'
];

// 用array_filter筛选带help_前缀的键
$helpFruits = array_filter($originalData, function($key) {
    return str_starts_with($key, 'help_');
}, ARRAY_FILTER_USE_KEY);

// 把整理好的数组传给Twig模板
$twig->render('your-template.twig', ['helpFruits' => $helpFruits]);

然后在Twig里直接遍历这个整理好的数组就行:

{% for key, info in helpFruits %}
    <p>{{ key }}: {{ info }}</p>
{% endfor %}

如果你的PHP版本低于8.0(不支持str_starts_with),可以换成substr($key, 0, 5) === 'help_'来判断前缀。

方案二:直接在Twig模板内处理

如果不想改动后端代码,也可以直接在Twig里做判断筛选。Twig自带starts with测试,能直接判断键的前缀:

{% for key, info in originalData %}
    {% if key starts with 'help_' %}
        <p>{{ key }}: {{ info }}</p>
    {% endif %}
{% endfor %}

要是你需要多次用到这个筛选逻辑,还可以自定义一个Twig过滤器,让代码更简洁:

// 在PHP里注册自定义过滤器
$twig->addFilter(new Twig\TwigFilter('filter_help_prefix', function($data) {
    return array_filter($data, function($key) {
        return str_starts_with($key, 'help_');
    }, ARRAY_FILTER_USE_KEY);
}));

然后在Twig里直接用过滤器:

{% for key, info in originalData|filter_help_prefix %}
    <p>{{ key }}: {{ info }}</p>
{% endfor %}

这样不管哪种方式,都能精准输出你需要的带help_前缀的水果键对应的数据啦~

内容的提问来源于stack exchange,提问作者Peter Jack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:22:15