Php 为多级数组填充键时保留重复键

Php 为多级数组填充键时保留重复键,php,Php,我试图将array1中的值填充为array2的键,但如果键重复,我会遇到问题: $arr1 = array( array(0 => "1", 1 => "1"), array(0 => "2", 1 => "2"), ); $arr2 = array( array(0 => "a", 1 => "b"), ar

我试图将array1中的值填充为array2的键,但如果键重复,我会遇到问题:

$arr1 = array(
    array(0 => "1", 1 => "1"),
    array(0 => "2", 1 => "2"),
);
$arr2 = array(
    array(0 => "a", 1 => "b"),
    array(0 => "c", 1 => "d"),
);

$result = [];

for ($i = 0; $i < count($arr1); $i++)
{
    $result[$i] = array_combine($arr1[$i], $arr2[$i]);
}
我需要这样:

$result = array(
    array(1 => "a", 1 => "b"),
    array(2 => "c", 2 => "d"),
);
我现在想要的修改输出:(查看所有评论/答案后)

谢谢大家!

第一个解决方案:当php数组中的相同索引被重写时,您无法得到想要的:

您能得到的最好结果是:

$result = [];

foreach($arr1 as $key=>$value){
   $result[array_unique($value)[0]] = $arr2[$key];
}
输出:

2nd soution:对于想要的输出,您需要再应用一个
foreach()


输出:

对不起,数组中不可能有两个相同的键。刚刚打印出您的预期结果:…您可以看到我在第一行中所说的,这是不可能的。
array(1=>“a”,1=>“b”),
您不能拥有这些,它们都使用索引
1
。但是,您可以将
a
b
作为数组
1
中的数组元素推送,如下所示:
1=>['a','b']
array (
  0 => 
  array (
    0 => array(
       0 => '1',
       1 => 'a',
            ),
    1 => array(
       0 => '1',
       1 => 'b',
            ),

  ),
  1 => 
  array (
    0 => array(
       0 => '1',
       1 => 'c',
            ),
    1 => array(
       0 => '1',
       1 => 'd',
            ),

  ),
);
$result = [];

foreach($arr1 as $key=>$value){
   $result[array_unique($value)[0]] = $arr2[$key];
}
$result = [];

foreach($arr1 as $key=>$value){
   foreach($value as $k=>$val){
       $result[$key][$k] = [$val,$arr2[$key][$k]];
   }
}

print_r($result);