PHP中的语法错误:函数返回值的数组访问

时间:2013-07-05 14:10:28

标签: php arrays arrayaccess

问题是我编写了一个避免显示重复数据的代码。在我的本地机器上它完美地工作但在主机上我收到以下错误:

  

语法错误,意外'['in   的 /home/eplus/public_html/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl   在线 481

以下是发生错误的代码

if ($pr_id[$i] == 0) {
   break;
   echo 'h1' . "Нет похожих продуктов";
}

if ($pr_id[$i] != array_unique($pr_id)[$i]) {    // Error on this line
   $product_fee = $this->db->query("SELECT `product_id` FROM `" . DB_PREFIX . "product_to_category` WHERE `category_id`='".$feed_id."' AND NOT `product_id` = '".$products_id."'  GROUP BY `product_id` ORDER BY RAND() LIMIT 0,10");

   $pr_id[$i] = $product_fee->row['product_id'];

   continue;
}

我该如何避免这种情况?至于CMS,我目前正在使用OpenCart。

1 个答案:

答案 0 :(得分:3)

仅在PHP版本 5.4 及更高版本中支持

阵列解除引用
在返回数组的函数后直接使用括号访问时:array_unique($array)[0]

了解详情:PHP 5.4: New features

我建议你在if子句之前创建包含唯一项的数组:

$pr_unique = array_unique($pr_id);

if ($pr_id[$i] != $pr_unique[$i]) {
    ....
}