如何在Twig中判断数组内所有元素是否全部相同?
在Twig中判断数组所有元素是否相同
方法一:利用unique过滤器
通过unique移除数组内的重复元素后,判断剩余元素的长度是否为1,即可验证原数组所有元素是否一致:
{% set targetArray = ["1234", "1234", "1234"] %} {% set allElementsSame = targetArray|unique|length == 1 %} {# 输出判断结果 #} {{ allElementsSame ? 'true' : 'false' }}
方法二:对比第一个元素与所有元素
先取出数组的第一个元素,再筛选出与它不同的元素,若不存在不同元素则说明所有元素相同:
{% set targetArray = ["1234", "1234", "1234"] %} {% set firstItem = targetArray[0] ?? null %} {# 筛选出与第一个元素不同的项 #} {% set differentItems = targetArray|filter(item => item != firstItem) %} {% set allElementsSame = differentItems|length == 0 %} {{ allElementsSame ? 'true' : 'false' }}
注:如果需要处理空数组的场景,可以额外判断targetArray|length == 0,根据业务需求返回对应结果。
内容的提问来源于stack exchange,提问作者steven zong
相关产品推荐
相关产品推荐

