我有以下数组,数组中第一项的数量为 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 关注
- 104 浏览
添加回答
举报
0/150
提交
取消