簡體   English   中英

如何將這兩個 arrays 結合起來?

[英]How can I combine this two arrays?

我遇到了 php 的問題,我已經努力讓它工作,但我想我需要一些幫助。

這是我的問題:

我每周都會收到 csv 來更新客戶在線商店的庫存量,我正試圖通過上傳 csv 來簡化它並更新庫存。

問題在於數據庫中的庫存表鏈接到產品 ID 而不是名稱(這是有道理的)。

該網站有多個供應商,它們都共享相同的產品和相同的庫存量。

當我上傳文件時,我得到 2 個 arrays,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 個庫存量。

您可以遍歷 arrays 並使用它們來構建一個新的。 像這樣的東西:

$Array3 = array();

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

這將創建一個關聯的 Array3,其中鍵是 Array1 中的值,值是 Array2 中的值,由原始 arrays 中的 position 鏈接。

可能對你有用,但你應該檢查長度是否相同等等......

您的整體方法可能不是最好的,但很難說。 但是,根據您所擁有的,如果您將 arrays 與鍵和值結合起來,那么您可以循環並使用它們:

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

不知道你想用 arrays 做什么,所以這只是一個如何根據順序關聯它們的例子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM