猿问

根据列值创建重复数组

我有以下数组,数组中第一项的数量为 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

        )


)


富国沪深
浏览 106回答 1
1回答

神不在的星期二

您可以循环原始 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
随时随地看视频慕课网APP
我要回答