- ベストアンサー
PHPに関する質問です
PHPに関して素人なのですが、是非お力をお貸し下さいませ。 下記の内容は「商品番号」が「B001」なら「700円」がプラスされる仕組みです。 そして「B001」以外なら「0円」がプラスされるようになっております。 ここまでは問題なく動作しているのですが、この内容を、 「商品番号にBが含まれていたら700円プラス」に変更する場合はどのように記述したらよいでしょうか? EC-CUBEをカスタマイズしていたのですが、 なにぶん素人ですので上手くできませんでした。 是非どなたかご教授下さいませ。 ------------------------------------------------------ // 送料カテゴリごとの個別設定 $arrProductsFee = array(); foreach ($objPage->arrProductsClass as $item) { switch ($item['product_code']) { case 'B001': $arrProductsFee[$item['product_code']] = 700; break; default: $arrProductsFee[$item['product_code']] = 0; } } $arrData['deliv_fee'] += array_sum($arrProductsFee); ------------------------------------------------------ 何卒宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
たとえばpreg_match <? $arrProductsFee = array(); $pattern="/B/"; foreach ($objPage->arrProductsClass as $item) { $arrProductsFee[$item['product_code']] = 0; if(preg_match($pattern,$item['product_code'])) { $arrProductsFee[$item['product_code']] = 700; } } $arrData['deliv_fee'] += array_sum($arrProductsFee); ?> もし、Bがbでもマッチしたいなら $pattern="/B/i"; もし、Bで始まるものにマッチしたいなら $pattern="/^B/";
その他の回答 (1)
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
switch{~}を if (strpos($item['product_code'],'B')>0) $arrProductsFee[$item['product_code']] = 700; とすればいいと思います。
お礼
素早い回答ありがとうございます。 こちらの方法では上手くいきませんでしたが、参考になりました。 ありがとうございました。
お礼
見事に問題が解決致しました。 本当にありがとうございました。 わずか7分で的確かつ丁寧なコメントを頂けるとは思いませんでした。 あとはこの「商品番号にBが含まれている商品」単体がカートに入ったら700円はプラスされないようにする・・・という最後の問題と戦っていますが、こちらはEC-CUBEに関する新しい質問を立てようかと思っております。 ありがとうございました。