在php中将二维数组与另一个一维数组组合

在php中将二维数组与另一个一维数组组合,php,arrays,Php,Arrays,我想合并两个数组,但保留数字顺序的键 这是第一个数组: array:3 [▼ 0 => array:1 [▼ "nombre" => "Pilsener" ] 1 => array:1 [▼ "nombre" => "Golden" ] 2 => array:1 [▼ "nombre" => "Suprema" ] ] 这是另一个数组: array:3 [▼ 0 => "6" 1 => "5

我想合并两个数组,但保留数字顺序的键

这是第一个数组:

array:3 [▼
  0 => array:1 [▼
    "nombre" => "Pilsener"
  ]
  1 => array:1 [▼
    "nombre" => "Golden"
  ]
  2 => array:1 [▼
    "nombre" => "Suprema"
  ]
]
这是另一个数组:

array:3 [▼
  0 => "6"
  1 => "5"
  2 => "1"
]
我想要的是:

    array:3 [▼
      0 => array:1 [▼
        "nombre" => "Pilsener"
        "cantidad" => "6"
      ]
      1 => array:1 [▼
        "nombre" => "Golden"
        "cantidad" => "5"
      ]
      2 => array:1 [▼
        "nombre" => "Suprema"
        "cantidad" => "1"
      ]
    ]

我搜索并找到了,但这对我不起作用…

因为你没有字符串作为键,你不能使用
数组\u merge\u recursive()
,但是你可以在数组中循环,看看键是否也存在于另一个数组中,并将数组添加到另一个数组中,例如

foreach($arr2 as $k => $v){
    if(isset($arr1[$k]))
        $arr1[$k] = $arr1[$k] + ["cantidad" => $v];
}

这不是一个特别优雅的解决方案,但它可以工作:

$arr1 = [array('nombre'=>'Pilsener'),array('nombre'=>'Golden'),array('nombre'=>'Suprema')];
$arr2 = [6,5,1];

$new_array = [];

$i=0;

foreach($arr1 as $arr) {
    $temp_arr['nombre'] = $arr['nombre'];
    $arr['cantidad'] = $arr2[$i];
    $new_array[] = $arr;
    $i++;
}

但是,我想要一种优雅的方法,我会使用
array\u combine
,但是有些名称的字符串中有空格,所以我不能将它们用作键…我尝试运行此代码,但它不起作用,除非我缺少什么?@GluePear刚刚忘记删除索引。读取OP的数组输出错误。@JonathanS。我不明白你说的mean@JonathanS. 你的问题包括你想要的预期结果是什么,Rizier的回答会给你这个结果。你应该接受他的回答或者问一个新问题。不错,但我更喜欢短一点的