php - 如何在没有 for 循环的情况下在 Twig 中按键访问值
问题描述
我正在使用由 GraphQL 驱动的数据源。它返回参数的键值对数组,其中参数的名称是键。不幸的是,它被设置为对象数组。例如:
"parameters": [
{
"key": "property.domain",
"value": "informium.net"
},
{
"key": "facebooook.url",
"value": "https://www.facebooook.com/informium"
},
{
"key": "springoh.url",
"value": "https://greenrivervalley.fffo.com/list-widget.js"
},
{
"key": "guitar.applicationId",
"value": "fHpJN0dfgdfrjjvE"
},
{
"key": "property.phone",
"value": "(707) 735-7311"
}
]
PHP/Twig 中有没有一种方法可以在每次我需要查找某些内容时通过键访问值而无需遍历该数组?我希望能够通过仅提供键来获取参数的值。例如:
{% set propDomain = data.parameters["property.domain"] %}
解决方案
我想出了如何使用 merge() 函数在 Twig 中预处理数组,如下所示:
{% set parametersHash = [] %}
{% for parameter in data.resolution.section.parameters %}
{% set parametersHash = parametersHash|merge({(parameter.key): parameter.value}) %}
{% endfor %}
这允许我通过键访问各个参数,如下所示:
{{ parametersHash["guitar.applicationId"] }}
产生:
fHpJN0dfgdfrjjvE
推荐阅读
- asp.net-mvc - 想要显示具有特定包含值的剑道列值
- haskell - Haskell Turtle 离开 Shell Monad
- oracle - Oracle:合并相当于插入所有?
- .net - 当本地帐户存在时,非域 cpu 上的 LogonUser Lib“advapi32.dll”奇怪吗?
- python - 将值插入数据框列
- javascript - 正则表达式以千、百万等添加逗号(但避免在小数点后添加它们)Javascript
- ruby-on-rails - (Rails 新手)rails 服务器错误:无法加载此类文件 -- bootsnap/setup (LoadError)
- powershell - Powershell GUI 文本框事件处理程序
- bash - bash、awk 和/或 sed 清理具有特殊格式的字符串
- sql - 使用 ORACLE SQL 从不同行查询数据