【问题标题】:foreach variable value is always the sameforeach 变量值始终相同
【发布时间】:2014-02-03 17:20:44
【问题描述】:

我正在处理一个现有的 foreach,它逐步遍历从数据库中提取的一组值。我想根据每个键/值对执行一些逻辑,并将一些值分配给变量以作为 foreach 循环的一部分输出。

具体来说,我需要输出基于每个密钥/对的某些值确定的可用性。我的逻辑有效,但最后一条记录的值被分配给通过条件测试的每条记录,即使值不同。

如何在循环中为每次正确分配 $value['availability']?

这是我的代码:

foreach ($prices as $value) {
    if(!$this->_validateAttributeValue($attributeId, $value, $options)) {
        continue;
    }
    $currentProduct->setConfigurablePrice(
        $this->_preparePrice($value['pricing_value'], $value['is_percent'])
    );
    $currentProduct->setParentId(true);
        Mage::dispatchEvent(
            'catalog_product_type_configurable_price',
            array('product' => $currentProduct)
        );
        $configurablePrice = $currentProduct->getConfigurablePrice();

        if (isset($options[$attributeId][$value['value_index']])) {
            $productsIndex = $options[$attributeId][$value['value_index']];
        } else {
            $productsIndex = array();
        }

    /* Check the quantity */
    if($options['qty'][$value['label']] <= 0) {
        if ($product->getResource()->getAttribute('item_status')->getFrontend()->getValue($product) == "Preorder") { // Preorder
            $value['availability'] = "Pre-order";
        }
        elseif ($product->getResource()->getAttribute('item_status')->getFrontend()->getValue($product) != "Discontinued") { // Must be an active backorder item
            if ($product->getResource()->getAttribute('new_availability')->getFrontend()->getValue($product) != "No") {
                $value['availability'] = $product->getResource()->getAttribute('new_availability')->getFrontend()->getValue($product);
            }
            else {
                $value['availability'] = "Temporarily out of stock";
            }                       
        }
    }

        $info['options'][] = array(
            'id'        => $value['value_index'],
            'label'     => ($options['qty'][$value['label']] <= 0) ? $value['label'] . ': '.$value['availability'].''  : $value['label'] . ": In stock",
            'price'     => $configurablePrice,
            'oldPrice'  => $this->_prepareOldPrice($value['pricing_value'], $value['is_percent']),
            'products'  => $productsIndex,
        );
        $optionPrices[] = $configurablePrice;
}

【问题讨论】:

    标签: php foreach


    【解决方案1】:

    试试

    foreach ($prices as $key=>$value){
       //your code
    }
    

    【讨论】:

    • @Florin- 感谢您的建议,尽管如此,我仍然在每次循环中获得相同的价值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    相关资源
    最近更新 更多