对不起,如果标题不清楚,但我需要的是这样的:
我有一个来自db的foreach打印数据,我有多个变量应该存储数组,然后用所有其他变量打印主变量。
foreach ($aItems as $i => $aItemInfo) {
$var1 = '';
$var2 = '';
$var3 = '';
$var1 .= $aItemInfo['val1'];
$var2 .= $aItemInfo['val2'];
$var3 .= $aItemInfo['val3'];
// some operations with the db data
if ($var1 > 0) {
if ($var1 == 1 && $var2 == 0) {
$a = 'Some text.';
}
else if ($var1 == 1 && $var2 == 1) {
$a = 'Some other text.';
}
else if ($var1 > 1 && $var2 == 0) {
$a = 'Some new text.';
}
else if ($var1 > 1 && $var2 == 1) {
$a = 'Some other new text.';
}
$new_var = '';
// html code
$new_var .= '<div id="">
<a id="">' . $othervar . '</a>
</div>
<div id="">
<span id="">' . $a . '</span>
</div>';
}
if ($var > 0) {
// html code
$other_var .= ' . $vars . ';
}
// html structure
$main_var .= '';
}
打印主变量:
<div class="">
<?php echo $main_var; ?>
</div>
实际上有些变量与前一个相同。我尝试在“=”之前放置一个点,但我真的不知道这是如何工作的或者是什么......
我做错了什么?制作每个变量的正确方法是什么,以便它们可以存储数组的每个值?
答案 0 :(得分:1)
在这种情况下,您没有正确使用.=
连接,如果条件是您所做的那样,那只会弄乱那些连接。
初始:
$var1 = '1';
if($var == 1) { // okay condition
}
第二次迭代,循环内再次声明。它不会做你要做的事情:
只需创建以下内容:
$main_var = $new_var = ''; // initialize output outtop
foreach ($aItems as $i => $aItemInfo) {
if ($aItemInfo['val1'] == 1 && $aItemInfo['val2'] == 0) {
$a = 'Some text.';
}
else if ($aItemInfo['val1'] == 1 && $aItemInfo['val2'] == 1) {
$a = 'Some other text.';
}
// html code
$new_var .= '
<div id="">
<a id="">' . $othervar . '</a>
</div>
<div id="">
<span id="">' . $a . '</span>
</div>
';
if ($aItemInfo['val1'] > 0) {
// html code
// another process here whatever it is
}
// html structure
$main_var .= $new_var;
}
答案 1 :(得分:1)
试试这个:
$var1 = $aItemInfo['val1'];
$var2 = $aItemInfo['val2'];
$var3 = $aItemInfo['val3'];
if ($var1 == 1 && $var2 == 0) {
$a = 'Some text.';
}
else if ($var1 == 1 && $var2 == 1) {
$a = 'Some other text.';
}
else if ($var1 > 1 && $var2 == 0) {
$a = 'Some new text.';
}
else if ($var1 > 1 && $var2 == 1) {
$a = 'Some other new text.';
}
if ($var > 0) {
$new_var = '';
// html code
$new_var .= '<div id="">
<a id="">' . $othervar . '</a>
</div>
<div id="">
<span id="">' . $a . '</span>
</div>';
}