为了账号安全,请及时绑定邮箱和手机立即绑定

查找一个项目在给定的多个数组中的哪个数组,并且项目只存在于 PHP/SQL 中的一个

查找一个项目在给定的多个数组中的哪个数组,并且项目只存在于 PHP/SQL 中的一个

PHP
白猪掌柜的 2021-10-15 16:48:27
我有一个电子商务网站,我将其设置为将国家/地区划分为不同的区域以支付运费。我有 8 个区域,这些都是国家代码数组,数组中不能有重复项,或者多个数组中不能存在项目。然后我想计算给定国家的运费。所以我基本上想找出这个国家在哪个地区。我目前所做的是通过物品供应商查询我的运输区域以获取所有数组,然后if(in_array())对每个数组执行如下操作:$params = [$supplier_id];$sql = "SELECT * FROM shipping_zones WHERE supplier_id=?";$stmt = DB::run($sql,$params);while($row = $stmt->fetch(PDO::FETCH_ASSOC)){    $z1 = unserialize($row['zone1']);    $z2 = unserialize($row['zone2']);    $z3 = unserialize($row['zone3']);    $z4 = unserialize($row['zone4']);    $z5 = unserialize($row['zone5']);    $z6 = unserialize($row['zone6']);    $z7 = unserialize($row['zone7']);    $z8 = unserialize($row['zone8']);}if(in_array($country_code,$z1)){    $shipping_zone = 'z1';}else if(in_array($country_code,$z2)){    $shipping_zone = 'z2';}else if(in_array($country_code,$z3)){    $shipping_zone = 'z3';}else if(in_array($country_code,$z4)){    $shipping_zone = 'z4';}else if(in_array($country_code,$z5)){    $shipping_zone = 'z5';}else if(in_array($country_code,$z6)){    $shipping_zone = 'z6';}else if(in_array($country_code,$z7)){    $shipping_zone = 'z7';}else if(in_array($country_code,$z8)){    $shipping_zone = 'z8';}必须有更好的方法来做到这一点,我认为在初始 SQL 查询中这样做可能更容易,但实际的数组在数据库中被序列化。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信