我有以下數組,數組中第一項的數量為 3,其余的數量為 1。這些數字是動態的。Array( [0] => Array ( [id] => 39235995 [quantity] => 3 [price] => 2.81 ) [1] => Array ( [id] => 39236029 [quantity] => 1 [price] => 2.952 ) [2] => Array ( [id] => 39236015 [quantity] => 1 [price] => 3.333 ) [3] => Array ( [id] => 39235997 [quantity] => 1 [price] => 2.667 ))我怎樣才能將其更改為以下輸出?那么第一個數量為 3 的項目現在被分為 3 個數組項目,并且每個項目的數量設置為一個?Array( [0] => Array ( [id] => 39235995 [quantity] => 1 [price] => 2.81 ) [1] => Array ( [id] => 39235995 [quantity] => 1 [price] => 2.81 ) [2] => Array ( [id] => 39235995 [quantity] => 1 [price] => 2.81 ) [3] => Array ( [id] => 39236029 [quantity] => 1 [price] => 2.952 ) [4] => Array ( [id] => 39236015 [quantity] => 1 [price] => 3.333 ) [5] => Array ( [id] => 39235997 [quantity] => 1 [price] => 2.667 ))
1 回答

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
您可以循環原始 arr 并將內容推送到第二個數組。如果數量 > 1,您可以創建一個循環來推送每個數量的項目。像這樣的東西:
? ? $resultArr = [];
? ? foreach($arrA as $item){
? ? ? ? for($i = 0; $i < $item['quantity']; $i++){
? ? ? ? ? ? // make sure the quantity is now 1 and not the original > 1 value
? ? ? ? ? ? $t = $item;
? ? ? ? ? ? $t['quantity'] = 1;
? ? ? ? ? ? $resultArr[] = $t;
? ? ? ? }
? ? }
請注意,代碼期望您的原始數組被稱為 $arrA
- 1 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消