如何使用 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
)
)
如何遍历数组以创建新的关联数组 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
)
)