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);