将数组存储在foreach中的变量中

时间:2014-11-14 03:06:39

标签: php html

对不起,如果标题不清楚,但我需要的是这样的:

我有一个来自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>

实际上有些变量与前一个相同。我尝试在“=”之前放置一个点,但我真的不知道这是如何工作的或者是什么......

我做错了什么?制作每个变量的正确方法是什么,以便它们可以存储数组的每个值?

2 个答案:

答案 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>';
}