NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# `slice` New in version 1.6: The `slice` filter was added in Twig 1.6. The `slice` filter extracts a slice of a sequence, a mapping, or a string: <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3 4 5 6 7</pre></div></td><td class="code"><div class="highlight"><pre>{% for i in [1, 2, 3, 4, 5]|slice(1, 2) %} {# will iterate over 2 and 3 #} {% endfor %} {{ '12345'|slice(1, 2) }} {# outputs 23 #} </pre></div></td></tr></table> You can use any valid expression for both the start and the length: <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1 2 3</pre></div></td><td class="code"><div class="highlight"><pre>{% for i in [1, 2, 3, 4, 5]|slice(start, length) %} {# ... #} {% endfor %} </pre></div></td></tr></table> As syntactic sugar, you can also use the `[]` notation: <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 5 6 7 8 9 10 11</pre></div></td><td class="code"><div class="highlight"><pre>{% for i in [1, 2, 3, 4, 5][start:length] %} {# ... #} {% endfor %} {{ '12345'[1:2] }} {# will display "23" #} {# you can omit the first argument -- which is the same as 0 #} {{ '12345'[:2] }} {# will display "12" #} {# you can omit the last argument -- which will select everything till the end #} {{ '12345'[2:] }} {# will display "345" #} </pre></div></td></tr></table> The `slice` filter works as the [array_slice](http://php.net/array_slice) [http://php.net/array_slice] PHP function for arrays and[mb_substr](http://php.net/mb-substr) [http://php.net/mb-substr] for strings with a fallback to [substr](http://php.net/substr) [http://php.net/substr]. If the start is non-negative, the sequence will start at that start in thevariable. If start is negative, the sequence will start that far from the endof the variable. If length is given and is positive, then the sequence will have up to thatmany elements in it. If the variable is shorter than the length, then only theavailable variable elements will be present. If length is given and isnegative then the sequence will stop that many elements from the end of thevariable. If it is omitted, then the sequence will have everything from offsetup until the end of the variable. Note It also works with objects implementing the [Traversable](http://php.net/manual/en/class.traversable.php) [http://php.net/manual/en/class.traversable.php] interface. ### Arguments - `start`: The start of the slice - `length`: The size of the slice - `preserve_keys`: Whether to preserve key or not (when the input is an array)