为了账号安全,请及时绑定邮箱和手机立即绑定

有没有更好的方法来使用树枝测试嵌套数组中存在的值

有没有更好的方法来使用树枝测试嵌套数组中存在的值

PHP
森栏 2023-05-12 15:54:54
我有一个模态,它有使用这个数据数组的树枝渲染的按钮"buttons" => [    [        "title" => "Copy",        "type" => "button",        "attributes" => [            "data-action" => "confirm"        ],        "class" => "btn-primary",    ],    [        "title" => "Cancel",        "type" => "button",        "attributes" => [            "aria-label" => "Close"        ],        "class" => "btn-light",    ]]如果已经有一个属性为“aria-labal='Close'”的按钮,我希望模式不在顶角显示 [x],因此我添加了这组嵌套的 if 语句和 for 循环。{% set hideBtnClear = false %}{% for btn in modal.buttons %}    {% if btn.attributes %}        {% for key, value in btn.attributes %}            {% if key == "aria-label" and value == "Close" %}                {% set hideBtnClear = true %}            {% endif %}        {% endfor %}    {% endif %}{% endfor %}{% if hideBtnClear == false %}    [x] <--{% endif %}它有效但不是很优雅。有什么办法可以改善它吗?
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

您也可以使用过滤器filter来解决这个问题

{% if btns|filter(v => v.attributes['aria-label']|default == 'Close') | length == 0 %}
    [ X ] 
{% endif %}

使用not代替== 0也有效

{% if not btns|filter(v => v.attributes['aria-label']|default == 'Close') | length %}


查看完整回答
反对 回复 2023-05-12
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

变化不大,但如果您知道 中所需的键btn.attributes,则只需检查此键是否存在及其值:


{% set hideBtnClear = false %}

{% for btn in modal.buttons %}

    {% if btn.attributes['aria-label'] is defined and btn.attributes['aria-label'] == "Close" %}

        {% set hideBtnClear = true %}

    {% endif %}

{% endfor %}

{% if hideBtnClear == false %}

    [x] <--

{% endif %}


查看完整回答
反对 回复 2023-05-12
  • 2 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信