如何组合这两个数组?



我正面临php的一个问题,我已经努力使它工作,但我想我需要一些帮助。

这是我的问题:

我每周收到一个csv来更新客户在线商店的库存数量,我试图通过上传csv来使它更容易,它更新了库存。

问题是在DB中,库存表链接到产品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)
}

不知道你想对数组做什么,所以这只是一个如何根据顺序将它们关联起来的例子。

相关内容

  • 没有找到相关文章

最新更新