2013-03-13 22 views
0

有兩種產品具有不同的數量和價格PHP添加符號,如果沒有價格

simple product -1 :   qty  price 
           2  150 
           3  145 
           5  130 
           10  100 


    simple product -2 :   qty  price 
           2  195 
           5  175 
           9  170 

我要表現在以下格式的數量和價格:

qty : 2   3   5  9   10 

    $150  $145  $130  -  $100 

    $195   -  $175  $170  - 

下面是代碼顯示價格和數量

/* 
$_tResult = [2, 3, 5, 9, 2, 5, 10] 
*/ 


    /* 
$_tierPrice value 


    array(10) { 
     ["price_id"] => string(2) "18" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "150.0000" 
     ["price_qty"] => float(2) 
     ["website_price"] => string(8) "150.0000" 
     ["formated_price"] => string(34) "150.00" 
     ["savePercent"] => float(4) 
     ["formated_price_incl_tax"] => string(34) "150.00" 
    } 

    array(10) { 
     ["price_id"] => string(2) "65" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "120.0000" 
     ["price_qty"] => float(3) 
     ["website_price"] => string(8) "120.0000" 
     ["formated_price"] => string(34) "120.00" 
     ["savePercent"] => float(23) 
     ["formated_price_incl_tax"] => string(34) "120.00" 
    } 

    array(10) { 
     ["price_id"] => string(2) "61" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "145.0000" 
     ["price_qty"] => float(5) 
     ["website_price"] => string(8) "145.0000" 
     ["formated_price"] => int(5) "145.00" 
     ["savePercent"] => float(7) 
     ["formated_price_incl_tax"] => string(34) "145.00" 
    } 

    array(10) { 
     ["price_id"] => string(2) "62" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "130.0000" 
     ["price_qty"] => float(9) 
     ["website_price"] => string(8) "130.0000" 
     ["formated_price"] => int(5) "130.00" 
     ["savePercent"] => float(17) 
     ["formated_price_incl_tax"] => string(34) "130.00" 
    } 

    array(10) { 
     ["price_id"] => string(2) "47" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "190.0000" 
     ["price_qty"] => float(2) 
     ["website_price"] => string(8) "190.0000" 
     ["formated_price"] => int(5) "190.00" 
     ["savePercent"] => float(5) 
     ["formated_price_incl_tax"] => string(34) "190.00" 
    } 

    array(10) { 
     ["price_id"] => string(2) "63" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "175.0000" 
     ["price_qty"] => float(5) 
     ["website_price"] => string(8) "175.0000" 
     ["formated_price"] => int(5) "175.00" 
     ["savePercent"] => float(13) 
     ["formated_price_incl_tax"] => string(34) "175.00" 
    } 

    array(10) { 
     ["price_id"] => string(2) "64" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "195.0000" 
     ["price_qty"] => float(9) 
     ["website_price"] => string(8) "195.0000" 
     ["formated_price"] => int(5) "195.00" 
     ["savePercent"] => float(3) 
     ["formated_price_incl_tax"] => string(34) "195.00" 
    } 

    array(10) { 
     ["price_id"] => string(2) "44" 
     ["website_id"] => string(1) "0" 
     ["all_groups"] => string(1) "1" 
     ["cust_group"] => int(32000) 
     ["price"] => string(8) "170.0000" 
     ["price_qty"] => float(10) 
     ["website_price"] => string(8) "170.0000" 
     ["formated_price"] => int(5) "170.00" 
     ["savePercent"] => float(15) 
     ["formated_price_incl_tax"] => string(34) "170.00" 
    } 
    */ 




<?php $_item->setData('tier_price',null); ?> 
      <?php $_tierPrices = $this->getTierPrices($_item); ?> 
      <?php //print_r($_tResult); ?> 
      <?php foreach ($_tierPrices as $price): ?> 
        <td> 
         <?php if(in_array($price['price_qty'],$_tResult)) :?> 
           <?php echo $price['formated_price']; ?> 
         <?php else: ?> 
           <?php echo "-"; ?> 
         <?php endif; ?> 
        </td>  
      <?php endforeach; ?> 

下面是代碼的實際輸出。

qty :  2   3   5  9   10 

     $150  $145  $130 $100 

     $195  $175  $170  

如何添加「 - 」當有數組

+1

$ _tierPrices的值是什麼? – 2013-03-13 09:38:04

+0

鋤頭是不是'$ _tierPrices'數組看起來像? – 2013-03-13 09:38:39

+0

只是關於你的代碼的評論。打開和關閉PHP是一項繁重的操作,您不應該在循環中執行此操作。我建議你使用像VTemplate這樣的模板引擎作爲初學者http://vtemplate.sourceforge.net/然後,當你熟悉這個概念時,你可以開始使用更強大的一個,比如smarty http://www.smarty.net/ – Maresh 2013-03-13 09:42:22

回答

-1

主要邏輯錯誤在你的代碼中沒有價格值,是該數組元素不等於上述數字。

您需要做的是在要顯示的鍵中創建一個包含元素和[-]的數組。

0

試試這個:

<?php $_item->setData('tier_price',null); ?> 
      <?php $_tierPrices = $this->getTierPrices($_item); ?> 
      <?php //print_r($_tResult); ?> 
      <?php foreach ($_tierPrices as $price): ?> 
      <td> 
       <?= (!empty($price['price'])) ? $price['formated_price']: "-"; ?> 
      </td>  
      <?php endforeach; ?> 

如果它不工作:

替換:

<?= (!empty($price['price_qty'])) ? $price['formated_price']: "-"; ?> 
with 
<?= (!empty($price['formated_price'])) ? $price['formated_price']: "-"; ?> 

評論或編輯你的問題。告訴我們什麼是輸出:

echo "<pre>"; print_r($price); echo "</pre>"; 
+0

在上面的代碼不起作用。你的代碼輸出也看起來像我上面提到的相同的輸出。謝謝。 – 2013-03-13 10:02:23

+0

你讀過完整的答案嗎?試圖提到不同的條件?什麼是'回聲 「

"; print_r($price); echo "
」 輸出;' – Karma 2013-03-13 10:07:21

+0

我得到5點產品陣列輸出的樣子下面:數組 ( [price_id] => 18 [website_id] => 0 [all_groups] => 1 [cust_group] => 32000 [價格] => 150.0000 [price_qty] => 2 [website_price] => 150.0000 [formated_price] => $ 150.00 [savePercent] => 4 [formated_price_incl_tax] => $ 150.00 ) – 2013-03-13 10:11:54