PHP:为每2个结果回显一些内容
我有一个简单的foreach循环,它输出我想要的信息 但是,我想为每两个结果使用一个div来包装它。 我尝试了模运算符,但没有成功(结果适用于每个结果) 所以,我的代码:PHP:为每2个结果回显一些内容,php,loops,foreach,conditional,Php,Loops,Foreach,Conditional,我有一个简单的foreach循环,它输出我想要的信息 但是,我想为每两个结果使用一个div来包装它。 我尝试了模运算符,但没有成功(结果适用于每个结果) 所以,我的代码: foreach ($result->data as $info) { // A open div to wrap two results echo 'something'; // An closing div to wrap the previous two results } 添加索引计数,
foreach ($result->data as $info) {
// A open div to wrap two results
echo 'something';
// An closing div to wrap the previous two results
}
添加索引计数,然后检查其在代码中是否可被2整除。 在本例中,if块需要位于foreach循环的顶部,因为我从0开始$I。请停止编辑该部分:)
$i=0;
//在这里创建循环之前的第一个新div。
回声'//第一组
foreach($result->data as$info){
//用于包装前两个结果的结束div
如果($i%2){
//这里的代码将在每两次迭代后出现
//IE:关闭div,然后打开一个新的。类似这样的
回声';
}
//用于包装两个结果的打开div
呼应‘某物’;
$i++;
}
//在循环后关闭最后一个div,在这里。
回声';
最简单的方法:按2步迭代
for ($cc = 0; $cc<count($result->data); $cc += 2) {
// here >> start div container for both
echo $result->data[$cc];
if (defined($result->data[$cc+1]))
echo $result->data[$cc+1];
// here >> end div container for both
}
用于($cc=0;$ccdata)$cc+=2){
//此处>>启动这两个容器的div容器
echo$result->data[$cc];
如果(已定义($result->data[$cc+1]))
echo$result->data[$cc+1];
//此处>>结束这两个容器的div
}
为清晰起见,省略了HTML
如果结果包含奇数项,您还可以添加else分支以输出占位符。设置两个变量,string和int
如果int变量的值不是偶数,则将值保存在字符串变量中
当第二个变量是偶数时
用div包起来就可以了
foreach ($result->data as $i=>$info) {
if ($i % 2 == 0) echo '<div>';
echo $info;
if ($i % 2 == 1) echo '</div>';
}
if (count($result->data) % 2 == 1) echo '</div>';
foreach($result->data as$i=>$info){
如果($i%2==0)回显“”;
echo$info;
如果($i%2==1)回显“”;
}
如果(计数($result->data)%2==1)回显“”;
正是你问的;) 对于从数组中每隔两次输出一次结果,您也可以使用
<?php
$array = range( 1, 20 );
foreach( array_chunk( $array, 2 ) as $pair ) {
echo '<div>' , implode( ' ', $pair ) , '</div>';
}
// <div>1 2</div>
// <div>3 4</div>
// etc
?>
//只要简单
<?php
foreach($result->data as $i=>$info){
if($i<5){
echo $info
}
}
?>
使用模运算符的想法听起来很合理。你是怎么用的?显示您的(不工作)tryPut a,用于($i=0;$iModulus使得没有额外的嵌套循环变得非常简单。@AndrewCoder我同意你的观点,我现在看到了你的答案。但是当它有两个以上的结果时,它不会正确地将结果括起来,因为你在循环之前打开了div。div
打开和关闭也应该是循环的一部分,只是在不同的范围内。是的。我就是这样做这种类型的操作的.在我的用例中工作得很好。还有其他方法可以做到。尽管第一个和最后一个div仅包含一个元素,但您的解决方案几乎成功了。我不认为是这样。循环将在第一个div结束前的第三次迭代中,在第二次迭代中打开。只要总项可被2整除,它应该输出正确…或者,一个额外的项目将是在一个div自己在最后。谢谢@Sebastian Sejzer工作得很有魅力!清晰和周到!
<?php
foreach($result->data as $i=>$info){
if($i<5){
echo $info
}
}
?>