本文概述
- 非关联数组
- 关联数组
非关联数组如果原始数组不具有关联性, 并且你想附加一个项目, 而忽略值的类型, 则合并过滤器期望将其内容将与分配的变量合并的数组作为第一个参数:
{% set myArray = [] %}{% set myArray = myArray|merge([1]) %}{% set myArray = myArray|merge([2, 3]) %}{% set myArray = myArray|merge([4]) %}{# The content of myArray ismyArray = [1, 2, 3, 4] #}
请注意, 你可以使用相同的语法构建任何复杂的内容:
{% set myArray = [] %}{% set myArray = myArray|merge([[1, 2], [3, 4], [5, 6]]) %}{% set myArray = myArray|merge([[[1, 2]], [[3, 4]], ]) %} {# The content of myArray ismyArray = [[1, 2], [3, 4], [5, 6], [[1, 2]], [[3, 4]]]#}
关联数组【如何轻松将项目推到Twig中的数组】要将项目添加到关联数组, 你只能将带有新值的带有方括号的数组作为第一个参数传递:
{# Note that the original array in this case has an item #}{% set myArray = {"first": 1} %}{% set myArray = myArray|merge({"second": 2}) %}{% set myArray = myArray|merge({"third": 3}) %} {# The content of myArray ismyArray = {"first":1, "second":2, "third":3}#}
请注意, 合并过滤器在后台使用array_merge, 这意味着如果你正在使用关联数组, 则如果键已经存在于元素上, 它将被覆盖:
{# Note that the original array in this case has an item #}{% set myArray = {"first": 1} %}{# Add the "second" key with value 2 #}{% set myArray = myArray|merge({"second": 2}) %}{# Change the value of the "second" key#}{% set myArray = myArray|merge({"second": "Modified 2"}) %} {# The content of myArray ismyArray = {"first":1, "second":"Modified 2"}#}
编码愉快!
推荐阅读
- 如何在Silex中将PHP用作模板引擎而不是Twig
- PHP函数”func_get_arg”和”func_get_args”如何从PHP 5.x更改为PHP 7.x
- 如何使用短语法使用Twig检查变量是否存在以及是否为空
- 如何安全处理PHP错误(__toString()不得抛出异常)
- 每个Twig开发人员都应该能够回答的20个问题的答案和解释
- 如何在Symfony 1.4上使用Composer安装Packagist库
- 如何使Symfony Project 1.4.20与PHP 5.5或5.6完全兼容(不推荐使用(preg_replace()警告))
- 添加自定义android webview错误页面
- 为什么我的android studio 3.5.3中缺少“ app”文件夹