如何使用laravel迭代数组以使用php创建新的关联数组

时间:2016-09-20 13:01:50

标签: php arrays laravel pivot

如何迭代数组以创建一个新的关联数组,用php插入laravel中的数据透视表

e.g。     $ arr = [3,2,3] //这是购物车中产品的产品数量

并希望将它们添加到关联数组中,使其类似于

$arr = ('quantity'=> 1)

所以我试图迭代数组并将元素添加到一个新数组中并添加值但保留laravel pivot所需的相同键

$ newArr = array();

foreach($arr as $key => $value) {
 $newArray[] = array('quantity' => $value);
}

但这是一个数组和子数组。

谢谢

1 个答案:

答案 0 :(得分:0)

你尝试过的;你总是只得到你的结果数组中的一个元素(最后一个元素:准确地说)。这是因为密钥是相同的,每个后续密钥都会覆盖前一个密钥。

在这种情况下,如果需要关联数组;只要您希望将数量作为关键,您可能必须使用多维数组。否则,您可以简单地为密钥添加前缀或后缀以获取单个关联数组。下面的代码片段可能很有见地:

    <?php

        $arr        = [3, 2, 3];
        $arrMD      = [];
        $arrAssoc   = [];

        foreach($arr as $k=>$qty){
            // CREATE A SUFFIXED KEY:
            $key            = "quantity_{$k}";
            $arrAssoc[$key] = $qty;
        }

        echo "<pre>";
        print_r($arrAssoc);
        echo "</pre>";
        // YIELDS
        Array
            (
              [quantity_0] => 3
              [quantity_1] => 2
              [quantity_2] => 3
            )

        foreach($arr as $k=>$qty){
            // CREATE A TEMPORARY ARRAY
            // TO BE USED IN GENERATING THE MULTIDIMENSIONAL ARRAY:
            $tmp            = ["quantity"=>$qty];
            $arrMD[]        = $tmp;
        }

        echo "<pre>";
        print_r($arrMD);
        echo "</pre>";
        //YIELDS:::
        Array
        (
            [0] => Array
                (
                [quantity] => 3
                )

            [1] => Array
                (
                  [quantity] => 2
                )

            [2] => Array
                (
                  [quantity] => 3
                )
        )