0
我有一個產品導入代碼,用於將庫存(數量)分配給倉庫位置(stock_id)的Magento。信息傳遞給一個數組,但是我對數組的工作知識並不是Flash,所以我確信我沒有正確地做到這一點。PHP數組 - 如何在數組中使用多個變量
導入目前是這樣完成的,但我確定它不是最高效的,因爲我將產品保存兩次。
這將爲位置1(stock_id 1)分配一個100的數量,保存產品,然後將200的數量分配給位置2(stock_id 2),然後再次保存產品。
$stocksData = $product->getStocksData();
if (!$stockData) {
$stockData = array();
}
$stockData['stock_id'] = 1;
$stockData['qty'] = 100;
$stocksData[$stockId] = $stockData;
$product->setStocksData($stocksData);
$product->setCreatedAt(strtotime('now'));
try {
$product->save();
echo "Successful";
}
catch (Exception $ex) {
echo 'There was an error :<br/>' .$ex;
}
$stocksData = $product->getStocksData();
if (!$stockData) {
$stockData = array();
}
$stockData['stock_id'] = 2;
$stockData['qty'] = 200;
$stocksData[$stockId] = $stockData;
$product->setStocksData($stocksData);
$product->setCreatedAt(strtotime('now'));
try {
$product->save();
echo "Successful";
}
catch (Exception $ex) {
echo 'There was an error :<br/>' .$ex;
}
我試圖做到的,是將所有的數組中的值,並保存一次,因爲這會佔用大量的負荷過劇本。
我一直在用這樣的東西玩耍,但沒有得到任何地方,通常有錯誤的結束:
$stocksData = $product->getStocksData();
if (!$stockData) {
$stockData = array();
}
$stockData = array(
[$stockData['stock_id'] = 1] => $stockData['qty'] = 100,
[$stockData['stock_id'] = 2] => $stockData['qty'] = 200
);
$stocksData[$stockId] = $stockData;
$product->setStocksData($stocksData);
我假設它可能有所有這些信息在一個陣列但我不知道如何。
感謝Aiias ,但是我並沒有真正遵循你的答案。他們是兩個單獨的解決方案還是一起工作?在第二個,假設我有4個股票的ID - 我最終會以if,else if,else if,else結束。在第一個答案id_copy來自哪裏。 – James 2013-03-10 23:49:57
@James - 我只是列舉了一些使用數組語法的不同方法。檢查我編輯的答案,看看是否適合你。 – Aiias 2013-03-10 23:51:19
非常感謝!這工作完美。你救了我幾個小時的悲傷。 – James 2013-03-11 00:08:32