我正在处理捆绑项目的 GIANT 列表,但只想根据用户输入的标准将某些项目显示为选项。这很容易,只需按照以下方式设置一个 if 语句:
$returnedproducts = array(21,50,78,23); // THESE ARE PRODUCT IDS.
if ($_product->getTypeId() == 'bundle'){
$selectionCollection = $_product->getTypeInstance(true)->getSelectionsCollection(
$_product->getTypeInstance(true)->getOptionsIds($_product), $_product
);
foreach($selectionCollection as $option) {
if(array_search($option['product_id'], $returnedproducts) !== FALSE){ // ADDED THIS TO FILTER
echo '<li>' . $option->option_id . '</li>';
}
}
}
问题在于,由于列表的大小和其他一些因素,这只会消耗大量资源。我想找到一种方法来仅查找和显示特定的选项 ID,而不必筛选整个列表(可以在WHERE product_id = XXXX
获取选项 ID 的查询中添加一个)。不过,我似乎找不到搜索单个捆绑选项的解决方案。谁能帮我实现这一目标?