从数组中获取值时,php显示错误

时间:2012-11-24 07:55:39

标签: php arrays arraylist

在php中,我的代码类似于此

  $discounts =  $this->model_catalog_product->getProductDiscounts($product_id);
      $product_discounts[] = array();
      foreach($discounts as $discount) {
        $product_discounts[] = array(
          'quantity' => $discount['quantity'],
          'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')))
        );
      }

现在,当我把它展示出像我这样的数组时

Array ( [0] => Array ( [product_discount_id] => 483 [product_id] => 43 [customer_group_id] => 8 [quantity] => 2 [priority] => 1 [price] => 345.0000 [date_start] => 0000-00-00 [date_end] => 0000-00-00 ) [1] => Array ( [product_discount_id] => 484 [product_id] => 43 [customer_group_id] => 8 [quantity] => 4 [priority] => 2 [price] => 784.0000 [date_start] => 0000-00-00 [date_end] => 0000-00-00 ) [2] => Array ( [product_discount_id] => 485 [product_id] => 43 [customer_group_id] => 8 [quantity] => 5 [priority] => 3 [price] => 786.0000 [date_start] => 0000-00-00 [date_end] => 0000-00-00 ) )

但是当我创建代码以从数组中获取折扣数量和折扣价格的值时

 <?php foreach ($discounts as $discount) {
    echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?>
    } ?>

我收到了这样的错误Undefined variable: discounts

3 个答案:

答案 0 :(得分:1)

替换此

$product_discounts[] = array();

$product_discounts = array();

答案 1 :(得分:0)

$discounts从未被定义过。它应该是$product_discounts。这就是为什么你得到undefined variable discounts

<?php
foreach ($product_discounts as $discount) {
    echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?>
}?>

答案 2 :(得分:0)

试试这个

$discounts =  $this->model_catalog_product->getProductDiscounts($product_id);
  $product_discounts = array();
  foreach($discounts as $discount) {
    $product_discounts = array(
      'quantity' => $discount['quantity'],
      'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')))
    );
  }