Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用foreach将div.container包裹起来_Php_Html_Containers_Counter - Fatal编程技术网

Php 用foreach将div.container包裹起来

Php 用foreach将div.container包裹起来,php,html,containers,counter,Php,Html,Containers,Counter,也许一个简单的问题,就这样。 我有一个简单的php foreach脚本,输出结果很好。我需要为每一个项目使用容器div包装结果。例如: 脚本看起来像什么 $result = $wpdb->get_results('SELECT id, fdate, tdate FROM database'); $i = 0; foreach ($result as $date): $i++; echo '<div class="range" data-range="'. $date-&

也许一个简单的问题,就这样。 我有一个简单的php foreach脚本,输出结果很好。我需要为每一个项目使用容器div包装结果。例如:

脚本看起来像什么

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
foreach ($result as $date):
   $i++; 
   echo '<div class="range" data-range="'. $date->id .'">';
   echo 'test';
   echo '</div>';
endforeach;
将输出:

<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
但我需要以下示例:一个容器div围绕着range,用于每秒钟的结果。像这样:

<div class="container">
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
</div>
<div class="container">
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
</div>
<div class="container">
<div class="range" data-range="00000000"></div>
<div class="range" data-range="00000000"></div>
</div>
我试过:

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
foreach ($result as $date):
   $i++; 
   if($i%2 == 0) {
     echo $i > 0 ? "</div>" : "";
     echo "<div class='container'>";
   }
   echo '<div class="range" data-range="'. $date->id .'">';
   echo 'test';
   echo '</div>';
endforeach;
但这将无法正确工作,我正在寻找的结果是:
想法=

你们真的很接近

您希望您的容器在foreach循环之外得到响应

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
echo '<div class="container">';
foreach ($result as $date):
   $i++;
   echo '<div class="range" data-range="'. $date->id .'">';
   echo 'test';
   echo '</div>';
endforeach;
echo '</div>';
编辑:对不起,我误解了你的问题,但还是很简单

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
foreach ($result as $date):
   $i++; 
   if($i%2 == 1) {
     echo "<div class='container'>";
   }
   echo '<div class="range" data-range="'. $date->id .'">';
   echo 'test';
   echo '</div>';
   if($i%2 == 0) {
     echo "</div>";
   }
endforeach;
编辑2:哇,真的没那么简单。如果结果为奇数,则不会关闭最后一个标记。所以,你实际上想要这个:

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
foreach ($result as $date):
   if($i%2 == 0) {
     echo "<div class='container'>";
   }
   echo '<div class="range" data-range="'. $date->id .'">';
   echo 'test';
   echo '</div>';
   if($i%2 == 1) {
     echo "</div>";
   }
   $i++; 
endforeach;
if($result->Size() % 2 == 1)
{
    echo '</div>';
}

这段代码应该可以满足您的需要

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i = 0;
foreach ($result as $date):
   $i++;
   if($i%2 == 1) {
       echo '<div class="container">';
   }
   echo '<div class="range" data-range="'. $date->id .'"></div>';
   if($i%2 == 0) {
       echo '</div>';
   }
endforeach;

尽管他应该检查一下!在输出第一个divcontainer之前清空$result。。。他仍然需要模测试来输出一个带有关闭标签的新divcontainer。我误解了这个问题。哎呀!谢谢:这将把所有范围类放在一个容器中:/:是!从最初的答案开始,我做了两次修改。这毕竟不是那么容易不。很抱歉它将所有内容都封装在一个容器中,不像想要的结果:上面将输出:对不起,我的错误。我把自己的代码弄糟了——它成功了。万分感谢:
<?php
define ('TEMPLATE_SUB_CONTAINER',   '<div class="range" data-range="%s">%s</div>');
define ('TEMPLATE_CONTAINER',       '<div class="container">%s</div>'); 

$result = $wpdb->get_results('SELECT id, fdate, tdate FROM database');
$i      = 0 ;
$buffer = '';

foreach ($result as $date):
   if ($i == 2) {
       flushBuffer($buffer);
       $buffer = '';
       $i=0;
   }
   $buffer .= sprintf(TEMPLATE_SUB_CONTAINER . '<br />', $date->id, 'test');
   $i++;
endforeach;
flushBuffer($buffer);

function flushBuffer($buffer) {
    if (strlen($buffer) > 0) {
        $buffer .= spintf(TEMPLATE_CONTAINER, $buffer);
        printf("%s", $buffer);
    }
}