2011-04-27 38 views
1

我正在嘗試編寫一個運輸計算器,迄今爲止表現不錯。輸入是來自訂單的一系列產品。我遇到的一個問題是,產品列表中的某些產品的數量值超過了1.由於計算器使用了很多,所以將所有產品分開而不是數量值會很好。有沒有一種方法可以將產品條目複製多次作爲數量字段的值,所以我得到一個擴展數組?PHP - 如何根據數量值複製產品列表中的產品

+3

請問您可以發表一些代碼嗎? – glomad 2011-04-27 21:40:53

回答

2

更好的解決方案是使用for循環 - 如果您的代碼確實需要您迭代X次,其中X是產品的數量。如果沒有看到代碼,我只能猜測,你的數據結構的模式,但這個片段可能指向您正確的解決方案:

foreach ($products as $product) { 
    $productId = $product["id"]; 
    for ($i = 0; $i < $product["quantity"]; $i++) { 
     // your code here 
    } 
} 

我會建議對您處理這個問題就像你在你的問題概括。創建一個新的數組來模擬for循環會做什麼會浪費內存和CPU,並且可擴展性更差。

+0

簡單美麗!我仍然是一個PHP的新手,for循環從未跨過我的想法,但它當然是完美的解決方案。您也猜對了數據結構,但我會記住將來會發布代碼示例。謝謝! – Toxid 2011-04-27 23:49:11

0

很難回答,沒有看你的代碼,但會這樣做嗎?

$products = array_merge($products, array_fill(0, $quantity, $product)); 
相關問題