我试图做的就是这样
[Col-3] [Col-3] [Col-3] [Col-3]
[Col-4] [Col-4] [Col-4]
[Col-3] [Col-3] [Col-3] [Col-3]
我正在用foreach语句继续进行此操作,但目前没有运气。
目前我正在做这样的事情。
$post = new mm_post();
$rows = $post->getAllPosts();
$i = 1;
foreach ($rows as $key => $row) {
if ($i % 4 == 0) {
echo "[Col-3] <br>";
} else {
echo "[Col-4] <br>";
}
$i++;
}
我正在为此寻求解决方案和解释:) 显然,自动取款机每发表3个帖子[col-3],但我希望它发送4个col-3,然后我要寻找3个col-4。
所以我希望你们能帮助我! :)
答案 0 :(得分:1)
想想每7个帖子就会有2行...一个是4列,一个是3列:
因此,当$ i计数器可被7整除时,您将打印
。然后,当行元素小于4时打印 col-3 ,则当4时行打印 col-3 和
否则打印 col-4
$post = new mm_post();
$rows = $post->getAllPosts();
$i = 1;
$line=0;
for($rows as $key => $row)
{
if($i-($line*7)<4)
{
echo "[col-3]";
}
else if($i-($line*7)==4)
{
echo "[col-3]<br>";
}
else
{
echo "[col-4]";
}
if($i%7==0)
{
echo "<br>";
$line++;
}
$i++;
}
答案 1 :(得分:0)
function alternate_slices($arr) {
$slices = array();
$start = 0;
$length = 4;
while ($start < count($arr)) {
$slices[] = array_splice($arr, $start, $length);
$length = (4 - $length + 3);
}
return $slices;
}
$arr = range(1, 20);
$sliced_arr = alternate_slices($arr);
<!-- print_r($sliced_arr);
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[1] => Array
(
[0] => 5
[1] => 6
[2] => 7
)
[2] => Array
(
[0] => 8
[1] => 9
[2] => 10
[3] => 11
)
[3] => Array
(
[0] => 12
[1] => 13
[2] => 14
)
[4] => Array
(
[0] => 15
[1] => 16
[2] => 17
[3] => 18
)
[5] => Array
(
[0] => 19
[1] => 20
)
) -->
$sliced_arr = array_map(
function ($slice) {
return implode("||", $slice);
},
$sliced_arr
);
<!-- print_r($sliced_arr);
Array
(
[0] => 1||2||3||4
[1] => 5||6||7
[2] => 8||9||10||11
[3] => 12||13||14
[4] => 15||16||17||18
[5] => 19||20
) -->
$sliced_arr = implode("\n", $sliced_arr);
<!-- print($sliced_arr);
1||2||3||4
5||6||7
8||9||10||11
12||13||14
15||16||17||18
19||20 -->
了解以下信息: