在数组中分隔值

时间:2017-02-14 17:49:26

标签: php arrays

我有一个由多个产品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真的会起作用吗?

1 个答案:

答案 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)