我想将一个关联数组添加到另一个关联数组中,但是当我使用array_push时,它会覆盖前一个数组的值
<?php
$tem = ["blue","ss"];
$len = count($tem);
print_r($len);
for($i=0;$i<$len;$i++){
$data = [
'code' => $tem[$i],
'discount_type' => 'percent',
];
$a=array();
$result[$i] =array_push($a,$data);
print_r($a);
}
?>输出结果是
2Array ( [0] => Array ( [code] => blue [discount_type] => percent ) )
Array ( [0] => Array ( [code] => ss [discount_type] => percent ) )发布于 2020-06-19 22:03:26
唯一的问题是您在循环中重置了$a数组,因此它将只包含最后一项。而且,当array_push()更新数组本身时,您不会赋值来自它的返回值(但无论如何您都不会使用$result[$i] )……
因此,您的代码最终将类似于..
$tem = ["blue","ss"];
$len = count($tem);
print_r($len);
$a=array();
for($i=0;$i<$len;$i++){
$data = [
'code' => $tem[$i],
'discount_type' => 'percent',
];
array_push($a,$data);
}
print_r($a);您还可以使用foreach循环缩短代码,并在将数组添加到结果中时创建数组……
$tem = ["blue","ss"];
$a=array();
foreach ( $tem as $t ) {
$a[] = [
'code' => $t,
'discount_type' => 'percent',
];
}
print_r($a);https://stackoverflow.com/questions/62471740
复制相似问题