【发布时间】:2015-12-24 22:32:43
【问题描述】:
我想每行订购 3 篇文章,而每隔一行 1 篇文章显示的宽图像填充了三个位置中的两个位置。 这是我想出的代码,但对于“简单”的东西来说似乎非常复杂。底部的示例输出。
也许有人知道可以做同样但更简单的事情。
谢谢!
<?php
$i = 0;
$x = 0;
$first = false;
$three = false;
$five = true;
foreach( range( 0, 27 ) as $k ) {
if( $x != 0 && $x % 3 == 0 ) {
echo "\n";
}
$x++;
$i++;
if( !$first && $i == 5 ) {
$i = 0;
$x++;
$first = true;
echo '[__]';
}
elseif( $first && !$three && $i == 4 ) {
$i = 0;
$x++;
$three = true;
$five = false;
echo '[__]';
}
elseif( $first && !$five && $i == 6 ) {
$i = 0;
$x++;
$three = false;
$five = true;
echo '[__]';
}
else echo '[]';
}
?>
输出:
[][][]
[][__]
[][][]
[__][]
[][][]
[][__]
[][][]
[__][]
[][][]
[][__]
[][][]
【问题讨论】:
-
什么是 27、$first、$3、$5?
-
变量在 3 和 5 个项目之间切换。 27 只是范围的一个数字。您可以创建 500 而不是 27,检查输出示例 - 想象每个框都是图像,小图像与宽图像
-
我不明白你的问题。您是在寻找所有可能的组合还是什么?如果您获得包含这些图像的文章列表 - 我在您的代码中看不到原始数组。
-
他需要用更简单的方法得到那个形状
-
foreach ([1, 1, 1, 0, 1, 3, 0, 1, 1, 1, 0, 3, 1, 0] as $size) { echo $size ? '[' . str_repeat('_', $size - 1) . ']' : "\n"; }
标签: php logic structure formula