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