在 foreach 中环绕 div.container
Wrap div.container around in foreach
也许是一个简单的问题,就这样吧。
我有一个简单的 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 环绕范围内的每一秒结果。像这样:
<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;
<?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);
}
}
也许是一个简单的问题,就这样吧。 我有一个简单的 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 环绕范围内的每一秒结果。像这样:
<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;
<?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);
}
}