echo for循环到字符串

时间:2012-06-07 15:34:34

标签: php variables for-loop

我有一个for循环,我希望能够将结果回显成一个字符串。如何才能做到这一点?它只会将循环的最后一次运行回到我的变量中,以便在循环之外使用。

for ($i = 0; $i < $numItem; $i++) {
            extract($cartContent[$i]);

        $pricebands = array("1"=>"$pd_price1","2"=>"$pd_price2","3"=>"$pd_price3","4"=>"$pd_price4","5"=>"$pd_price5","6"=>"$pd_price6");
        if(isset($loggedInfo['price'])){
            $priceToShow = $pricebands[$loggedInfo['price']];
        } else {
            $priceToShow = $pricebands[1];
        }
            $productUrl = "index.php?c=$cat_id&p=$pd_id";
            $subTotal += $priceToShow * $ct_qty;
            $pd_name;
            $ct_qty;
            $productList = "L_NAME".$i."=".$pd_name."&L_AMT".$i."=".$priceToShow."&L_QTY".$i."=".$ct_qty."&";   
        }
        $amount = $subTotal;           
    }

和将$ productList放入

的变量
   $nvpstr="&PAYMENTACTION=$paymentType&AMT=$amount&".trim($productList)."CREDITCARDTYPE=$creditCardType&ACCT=$creditCardNumber&EXPDATE=".$padDateMonth.$expDateYear."&CVV2=$cvv2Number&FIRSTNAME=$firstName&LASTNAME=$lastName&STREET=$address1&CITY=$city&STATE=$state&ZIP=$zip&COUNTRYCODE=$countryCode&CURRENCYCODE=$currencyCode";

2 个答案:

答案 0 :(得分:5)

每次循环时都要重置$ productList。你想添加它,而不是设置它:

$productList .= 'new stuff...';

在循环之前,将变量设置为空字符串,您将在其中添加更多字符:

$productList = '';

答案 1 :(得分:0)

String Concatenation或implode。

我对你想要加入的确切字符串感到有点困惑,没有回声。

for ($i = 0; $i < $numItem; $i++) {
        extract($cartContent[$i]);

    $pricebands = array("1"=>"$pd_price1","2"=>"$pd_price2","3"=>"$pd_price3","4"=>"$pd_price4","5"=>"$pd_price5","6"=>"$pd_price6");
    if(isset($loggedInfo['price'])){
        $priceToShow = $pricebands[$loggedInfo['price']];
    } else {
        $priceToShow = $pricebands[1];
    }
        $productUrl = "index.php?c=$cat_id&p=$pd_id";
        $subTotal += $priceToShow * $ct_qty;
        $pd_name;
        $ct_qty;
        $productList .= "L_NAME".$i."=".$pd_name."&L_AMT".$i."=".$priceToShow."&L_QTY".$i."=".$ct_qty."&";   
    }
    $amount = $subTotal;           
}