微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何组合这两个数组?

如何解决如何组合这两个数组?

我在使用 PHP 时遇到了问题,我已经非常努力地让它工作,但我想我需要一些帮助。

这是我的问题:

我每周都会收到一个 csv 来更新客户在线商店中的库存数量,我正在尝试通过上传 csv 并更新库存来使其更容易。

问题出在数据库中,库存表链接到产品 ID 而不是名称(这是有道理的)。

该网站有多个供应商,所有供应商共享相同的产品和相同的库存数量

当我上传文件时,我得到 2 个数组,array1 包含所有产品名称 array2 包含每个的库存量。就像在我的 csv 文件中一样 示例:

Array1 = ['Product1','Product2','Product3']; //products
Array2 = ['1','3','7']; // stock amount

我的下一步是进行查询获取来自 array1 中每个产品的所有供应商的 IDS

现在我有这样的东西

Array3 = array('1','14','25' ),array ('2','15','26' ),array('3','16','27' ); // 

现在斗争来了,我如何将股票与那些 Id 相关联?

我需要将 ID 的 1,14,25 关联到 1 个股票数量,将 2,15,26 关联到 3 个股票数量,将 3,16,27 关联到 7 个股票数量

解决方法

您可以遍历两个数组并使用它们构建一个新数组。像这样:

$Array3 = array();

for($i = 0; $i < count($Array1); $i++) {
   $Array3[$Array1[$i]] = $Array2[$i];
}

这会创建一个关联的 Array3,其中键是 Array1 中的值,值是 Array2 中的值,通过它们在原始数组中的位置链接。

可能适合您,但您应该检查长度是否相同以及更多...

,

您的整体方法可能不是最好的,但很难说。但是,根据您所拥有的,如果将数组与键和值组合在一起,则可以循环使用它们:

foreach(array_combine($Array2,$Array3) as $stock => $ids) {
    $ids = implode(',',$ids);
    //UPDATE tablename SET stock_amount=$stock WHERE vendor_id IN($ids)
}

不确定您要对数组做什么,所以这只是如何根据顺序关联它们的示例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。