如何使用 laravel 遍历数组以创建具有 php 的新关联数组

how to iterate through an array to create a new associative array with php using laravel

如何遍历数组以创建新的关联数组 php 以插入 laravel

中的枢轴 table

例如 $arr = [3, 2, 3] // 这是购物车中产品的产品数量

并想将它们添加到关联数组中,类似于

$arr = ('quantity'=> 1)

所以我尝试遍历数组并将元素添加到新数组中并添加值但保留 laravel pivot

所需的相同键

$newArr = array();

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

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

谢谢

用你所尝试的;您将始终在结果数组中只获得一个元素(最后一个元素:准确地说)。这是因为密钥是相同的,每个后续密钥都会覆盖前一个密钥。

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

    <?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
                )
        )