如何通过SKU名称从PHP数组中获取对应商品价格?
通过SKU获取商品价格的PHP实现方案
你的原始数组中,第一组是表头数据,后续是商品详情。直接基于这个二维数组查询SKU效率较低,更推荐先转换数组结构,或者直接遍历查找,以下是具体实现方式:
方式一:转换为SKU映射数组(推荐)
先把原始数组处理成以SKU为键、价格为值的关联数组,后续查询会更高效:
// 假设你的原始数组变量名为$productsArray $skuPriceMap = []; // 跳过表头(数组第0项),遍历商品数据 for ($i = 1; $i < count($productsArray); $i++) { $sku = $productsArray[$i][0]; // 可选:清理价格里的$符号和空格,得到纯数字价格 $cleanPrice = trim(str_replace('$', '', $productsArray[$i][2])); $skuPriceMap[$sku] = $cleanPrice; } // 查询指定SKU的价格 $targetSku = "PRODUCT1"; if (isset($skuPriceMap[$targetSku])) { echo "价格:$" . $skuPriceMap[$targetSku]; // 输出:价格:$39.99 } else { echo "未找到对应SKU的商品"; }
方式二:直接遍历原始数组查询
如果不想转换数组结构,也可以直接遍历查找目标SKU:
$targetSku = "PRODUCT1"; $foundPrice = null; // 跳过表头,遍历商品数据 for ($i = 1; $i < count($productsArray); $i++) { if ($productsArray[$i][0] === $targetSku) { $foundPrice = trim($productsArray[$i][2]); break; } } // 输出结果 if ($foundPrice) { echo $foundPrice; // 输出:$39.99 } else { echo "未找到对应商品"; }
注意事项
- SKU大小写敏感:原始数据中SKU为大写
PRODUCT1,如果你的查询变量是Product1,建议统一大小写(比如用strtoupper($targetSku)转换后再匹配) - 价格格式处理:原始价格包含
$和空格,可根据业务需求用trim()和str_replace()清理成纯数字格式
内容的提问来源于stack exchange,提问作者DOMDocumentVideoSource
相关产品推荐
相关产品推荐

