Php 将多个值推送到数组
我有一系列数据,如:Php 将多个值推送到数组,php,multidimensional-array,Php,Multidimensional Array,我有一系列数据,如: array:2 [ 0 => array:1 [ "image" => "attachment-T48Pi7oAov.jpg" ] 1 => array:1 [ "image" => "attachment-IF8VG2pypn.jpg" ] ] 我需要将另外两个值推入每个数组,如下所示: array:2 [ 0 => array:1 [ "image" => "attachment-T48P
array:2 [
0 => array:1 [
"image" => "attachment-T48Pi7oAov.jpg"
]
1 => array:1 [
"image" => "attachment-IF8VG2pypn.jpg"
]
]
我需要将另外两个值推入每个数组,如下所示:
array:2 [
0 => array:1 [
"image" => "attachment-T48Pi7oAov.jpg",
"attachable_type" => "whatever",
"attachable_id" => "whatever"
]
1 => array:1 [
"image" => "attachment-IF8VG2pypn.jpg",
"attachable_type" => "whatever",
"attachable_id" => "whatever"
]
]
如果我使用array\u push
或array\u unshift
它会返回诸如6
或3
代码
有什么想法吗?尝试迭代数组,并将所需元素推送到每个子数组中
array_walk(
$array,
function (&$item, $key) {
$item['attachable_type'] = 'whatever';
$item['attachable_id'] = 'whatever';
}
);
在循环中,将所有值打包为一个数组并立即推送:
$package = [
'image' => $filename,
'attachable_type' => App\ProjectScheduleVisit::class,
'attachable_id' => $visit->id,
]
$names[] = $package;
如果您还需要在单独的数组中使用可附加的类型和id(正如您的代码所建议的,但这可能是您尝试的产物),请将它们从包中取出:
$type['attachable_type'] = $package['attachable_type'];
$id['attachable_id'] = $package['attachable_id'];
给你举个例子
$type['attachable_type'] = $package['attachable_type'];
$id['attachable_id'] = $package['attachable_id'];
$a = [
[
"image" => "attachment-T48Pi7oAov.jpg",
],
[
"image" => "attachment-IF8VG2pypn.jpg",
],
];
foreach ($a as $key => $value) {
$a[$key]['attachable_type'] = rand(1, 100);
$a[$key]['attachable_id'] = rand(1, 100);
}
print_r($a);