获取通知:未定义的偏移量:0

时间:2014-11-24 21:39:49

标签: php magento

我在下面粘贴的功能中的3个位置出现此错误。这段代码还有很多,但我认为不需要弄清楚这件事。

$count = count($collection);    
$i = 1 ; 
foreach ($collection as $product) 
{
    $j = 1 ;
    $productId = $product->getDiamondsearchId();
    $attributValueOptions = "[" ;
    $attributValueOptions .= "'".$productId."', "; 
    foreach($filterAttributeIds as $filterAttributeId){

        $attributValueCollection = Mage::getModel('diamondsearch/diamondsearchattributvalue')->getCollection()->addFieldToFilter('attribut_id',$filterAttributeId)->addFieldToFilter('diamondsearch_id',$productId)->getData();

        $attrbutValueId = $attributValueCollection[0]['attrbut_value_id'];
        //echo $attrbutValueId."<br>";
        $attributValueOptionCollection = Mage::getModel('diamondsearch/diamondsearchattributoptionvalue')->getCollection()->addFieldToFilter('id',$attrbutValueId)->getData();
        if($j == 1 && $attributValueOptionCollection[0]['attribut_value'] == ""){

        break ;
        }
        if($j == 15){
            $attributValueOptions .= "'".$attributValueOptionCollection[0]['attribut_value']."'"; 
        }else{
            $attributValueOptions .= "'".$attributValueOptionCollection[0]['attribut_value']."', "; 
        }
        $j++;
    }
    if($count == $i ){
    $attributValueOptions .= "]";
    }else{
    $attributValueOptions .= "], ";
    }
    $i++;
    echo $attributValueOptions ;


}

1 个答案:

答案 0 :(得分:0)

问题在于这一行:

$attributValueCollection = Mage::getModel('diamondsearch/diamondsearchattributvalue')->getCollection()->addFieldToFilter('attribut_id',$filterAttributeId)->addFieldToFilter('diamondsearch_id',$productId)->getData();
$attrbutValueId = $attributValueCollection[0]['attrbut_value_id'];

您正在尝试获取数组的第一项,但此变量为空。你应该验证然后做你想要的东西,如:

if(!empty(attributValueCollection)){
 $attrbutValueId = $attributValueCollection[0]['attrbut_value_id'];

以下是完整的要点: https://gist.github.com/muriloazevedo/8dc5b11b17d1c4a3a518

但重要的是要记住,如果你试图生成一个json结果,最好使用json_encode: http://php.net/manual/pt_BR/function.json-encode.php