我试图过滤产品magento ce 1.7中的某些产品。即时提取我想要从多维数组中过滤的值
foreach ($artist_productIds as $artist_productID){
$artist_product_id[] = $artist_productID['mageproductid'];
}
$artist_prodIdString = implode(',',$artist_product_id);
并将其传递给magento查询
$categoryproducts = Mage::getModel('catalog/category')->load($currentArtCat)
->getProductCollection()
->addAttributeToSelect('*') // add all attributes - optional
->addFieldToFilter('status', array('neq' => 2))
->addAttributeToFilter('entity_id', array('nin' => array($artist_prodIdString)));
在调试时我知道它将值传递为
array('47,48,49,112,113,114,115,116')
它应该像
一样传递array(47,48,49,112,113,114,115,116)
我应该怎么解决它!
答案 0 :(得分:1)
为什么你要将一个数组插入字符串然后传递它
$artist_prodIdString = implode(',',$artist_product_id);
然后使用
array('nin' => array($artist_prodIdString));
您可以直接将数组作为
传递 array('nin' => $artist_product_id);
你在foreach中生成的。
如果您的$ artist_product_id不是正确的数组
之后$artist_prodIdString = implode(',',$artist_product_id);
使用explode()将其设为数组并将其传递给函数。
你正在尝试做某事
$str = '47,48,49,112,113,114,115,116' ;
$array = array($str);
print_r($array);
output Array
(
[0] => 47,48,49,112,113,114,115,116
)
在你的情况下也是如此,所有数字都是针对数组键0