mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-16 12:26:30 +00:00
optimize batch function and add tests
This commit is contained in:
@@ -1328,9 +1328,10 @@ function twig_array_batch($items, $size, $fill = null)
|
|||||||
|
|
||||||
if (null !== $fill) {
|
if (null !== $fill) {
|
||||||
$last = count($result) - 1;
|
$last = count($result) - 1;
|
||||||
while (count($result[$last]) < $size) {
|
$result[$last] = array_merge(
|
||||||
$result[$last][] = $fill;
|
$result[$last],
|
||||||
}
|
array_fill(0, $size - count($result[$last]), $fill)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
|||||||
@@ -1,37 +1,31 @@
|
|||||||
--TEST--
|
--TEST--
|
||||||
"batch" filter
|
"batch" filter
|
||||||
--TEMPLATE--
|
--TEMPLATE--
|
||||||
<table>
|
{% for row in items|batch(3) %}
|
||||||
{% for row in items|batch(3, '') %}
|
<div class=row>
|
||||||
<tr>
|
|
||||||
{% for column in row %}
|
{% for column in row %}
|
||||||
<td>{{ column }}</td>
|
<div class=item>{{ column }}</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tr>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
|
||||||
--DATA--
|
--DATA--
|
||||||
return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
|
return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
|
||||||
--EXPECT--
|
--EXPECT--
|
||||||
<table>
|
<div class=row>
|
||||||
<tr>
|
<div class=item>a</div>
|
||||||
<td>a</td>
|
<div class=item>b</div>
|
||||||
<td>b</td>
|
<div class=item>c</div>
|
||||||
<td>c</td>
|
</div>
|
||||||
</tr>
|
<div class=row>
|
||||||
<tr>
|
<div class=item>d</div>
|
||||||
<td>d</td>
|
<div class=item>e</div>
|
||||||
<td>e</td>
|
<div class=item>f</div>
|
||||||
<td>f</td>
|
</div>
|
||||||
</tr>
|
<div class=row>
|
||||||
<tr>
|
<div class=item>g</div>
|
||||||
<td>g</td>
|
<div class=item>h</div>
|
||||||
<td>h</td>
|
<div class=item>i</div>
|
||||||
<td>i</td>
|
</div>
|
||||||
</tr>
|
<div class=row>
|
||||||
<tr>
|
<div class=item>j</div>
|
||||||
<td>j</td>
|
</div>
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
--TEST--
|
||||||
|
"batch" filter
|
||||||
|
--TEMPLATE--
|
||||||
|
<table>
|
||||||
|
{% for row in items|batch(3, '') %}
|
||||||
|
<tr>
|
||||||
|
{% for column in row %}
|
||||||
|
<td>{{ column }}</td>
|
||||||
|
{% endfor %}
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
--DATA--
|
||||||
|
return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
|
||||||
|
--EXPECT--
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>a</td>
|
||||||
|
<td>b</td>
|
||||||
|
<td>c</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>d</td>
|
||||||
|
<td>e</td>
|
||||||
|
<td>f</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>g</td>
|
||||||
|
<td>h</td>
|
||||||
|
<td>i</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>j</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
--TEST--
|
||||||
|
"batch" filter
|
||||||
|
--TEMPLATE--
|
||||||
|
<table>
|
||||||
|
{% for row in items|batch(3, 'fill') %}
|
||||||
|
<tr>
|
||||||
|
{% for column in row %}
|
||||||
|
<td>{{ column }}</td>
|
||||||
|
{% endfor %}
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
--DATA--
|
||||||
|
return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
|
||||||
|
--EXPECT--
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>a</td>
|
||||||
|
<td>b</td>
|
||||||
|
<td>c</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>d</td>
|
||||||
|
<td>e</td>
|
||||||
|
<td>f</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>g</td>
|
||||||
|
<td>h</td>
|
||||||
|
<td>i</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>j</td>
|
||||||
|
<td>fill</td>
|
||||||
|
<td>fill</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
Reference in New Issue
Block a user