首页 > 解决方案 > 如何从“^”分隔列表中获取产品 ID?

问题描述

我有一个 '^' 分隔的产品 ID 号列表,我只需要获取产品 ID 号,然后用它来查询 SQL 数据库。产品 ID 号存储在 $_SESSION 散列中。例如:

SKUS: jpn18726^gr172645^123746^17246^eu186726^...

我能想到的代码是这样的:

$prodmat = $_SESSION["product"];
if(preg_match("(\d+)(^\s*\d+)*", $prodmat) {
    $stmt = "select shipcode from materials where material='???'";
}

基本上,我想从 '^' 分隔列表中提取产品 ID 号,然后使用产品 ID 号查询数据库。

标签: phpregex

解决方案


做一些爆炸:

$prod_list = 'SKUS: jpn18726^gr172645^123746^17246^eu186726';
$list_parts = explode(':', $prod_list); // separate the text
$prods = explode('^', trim($list_parts[1])); // trim and put the list in an array
print_r($prods);

结果:

Array
(
    [0] => jpn18726
    [1] => gr172645
    [2] => 123746
    [3] => 17246
    [4] => eu186726
)

现在您可以使用查询循环遍历数组。

foreach($prods as $product) {
     $sql = "SELECT foo, bar, WHERE products WHERE id = ?";
     // bind the current product
     // do the query
}

推荐阅读