我无法弄清楚如何在Stackoverflow上登录我的帐户,我发现它有点令人困惑。无论如何,我在这里问了一个关于我遇到的问题的问题:
我已经发现了一个开源项目,它完全按照我的需要完成,但是代码是PHP,虽然我可以理解其中的大部分内容都是我无法获得的。我会在这里发布我的评论,如果有人可以添加额外的细节,那将是值得赞赏的。
public function productAttributeExists($attributesList, $currentProductAttribute = false)
{
$result = Db::getInstance()->ExecuteS('SELECT pac.`id_attribute`, pac.`id_product_attribute`
FROM `'._DB_PREFIX_.'product_attribute` pa
LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON (pac.`id_product_attribute` = pa.`id_product_attribute`)
WHERE pa.`id_product` = '.intval($this->id));
if (!$result OR empty($result))
return false;
$productAttributes = array();
foreach ($result AS $productAttribute)
$productAttributes[$productAttribute['id_product_attribute']][] = $productAttribute['id_attribute'];
foreach ($productAttributes AS $key => $productAttribute)
if (sizeof($productAttribute) == sizeof($attributesList))
{
$diff = false;
for ($i = 0; $diff == false AND isset($productAttribute[$i]); $i++)
if (!in_array($productAttribute[$i], $attributesList) OR $key == $currentProductAttribute)
$diff = true;
if (!$diff)
return true;
}
return false;
}
好的事实证明我无法在Stackoverflow中评论此代码而不会将其全部归结为地狱格式。所以我的理解是:
1)获取数据 2)如果数据集为空,则返回false 3)名为productAttributes的新数组 4)循环数据集并填充数组 5)不确定最后一部分是做什么的,从'foreach'开始的部分对我来说还不清楚。
任何提示赞赏。顺便说一句,C#是我的首选语言,也是我最了解的语言。
答案 0 :(得分:0)
该函数名称只能检查产品的特定属性列表是否存在,并且与第一个参数中提供的属性列表相同。
最后一部分令人困惑,但它正在遍历所有属性,以查看是否有任何检索到的属性与提供的属性相同。
在循环迭代中:
功能不是很理想,顺便说一句。