如何迭代数组以创建一个新的关联数组,用php插入laravel中的数据透视表
e.g。 $ arr = [3,2,3] //这是购物车中产品的产品数量
并希望将它们添加到关联数组中,使其类似于
$arr = ('quantity'=> 1)
所以我试图迭代数组并将元素添加到一个新数组中并添加值但保留laravel pivot所需的相同键
$ newArr = array();
foreach($arr as $key => $value) {
$newArray[] = array('quantity' => $value);
}
但这是一个数组和子数组。
谢谢
答案 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
)
)