我有一个由多个产品skus及其各自的数量组成的变量,如下所示:
$components = "SKUA,2,SKUB,2,SKUC,1,SKUD,2"
我可以爆炸并获得数组:
$items = explode(";",$components);
foreach($items as $item) {
echo $item . '|';
}
如果每个项目和每个数量存在,我将如何执行功能?
例如,我想检查Magento中的SKU,看看我列出的数量是否适用于列出的每个SKU:
阵列中的SKU数量会有所不同,每个SKU后面总会有一个数量。
foreach真的会起作用吗?
答案 0 :(得分:0)
你在谈论这样的事情:
$components = "SKUA,2,SKUB,2,SKUC,1,SKUD,2";
$split = explode(',', $components);
$Q = [];
for ($i=0; $i<count($split); $i+=2) {
$sku = $split[$i]; $qty = $split[$i+1];
$Q[]= "(SKU = '$sku' AND Qty >= $qty)";
}
$Query = 'select * from mydb where '.implode(' OR ', $Q);
这会给你一个像这样的查询:
select * from mydb where (SKU = 'SKUA' AND Qty >= 2) OR (SKU = 'SKUB' AND Qty >= 2) OR (SKU = 'SKUC' AND Qty >= 1) OR (SKU = 'SKUD' AND Qty >= 2)