如何通过PHP迭代数组来创建一个新的关联数组,以便插入到laravel中的数据透视表
。$arr =[3,2,3]//这是购物车中产品的数量
,并希望将它们添加到关联数组中,例如
$arr = ('quantity'=> 1)
所以我尝试遍历数组并将元素添加到新数组中并添加值但保持laravel pivot
所需的相同键$newArr = array();
foreach($arr as $key => $value) {
$newArray[] = array('quantity' => $value);
}
但是这是一个数组和子数组。
谢谢
尽你所能;你将永远只得到一个元素在你的结果数组(最后一个元素:准确地说)。这是因为键是相同的,并且每个后续键都覆盖前一个键。
在这种情况下,如果你需要一个关联数组;只要您希望以数量为关键,您就可能不得不使用多维数组。否则,您可以简单地为键添加前缀或后缀,以获得单个Associative数组。下面的代码片段可能很有见地:
<?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
)
)