Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中使用相同的键组合两个数组_Php_Arrays_Multidimensional Array - Fatal编程技术网

在php中使用相同的键组合两个数组

在php中使用相同的键组合两个数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,你好,只是一个php新手,非常需要你的帮助。我实际上有两个数组,我希望它能够合并 ['a1']=>array( [0]=>200, [1]=>300, [2]=>300 ), ['a2']=>array( [0]=>100, [1]=>600, [2]=>200 ) ['a1']=>array( [0]=>gen, [1]=>

你好,只是一个php新手,非常需要你的帮助。我实际上有两个数组,我希望它能够合并

    ['a1']=>array(
    [0]=>200,
    [1]=>300,
    [2]=>300
    ),

    ['a2']=>array(
    [0]=>100,
    [1]=>600,
    [2]=>200
    )

    ['a1']=>array(
    [0]=>gen,
    [1]=>gen2,
    [2]=>gen
       ),
    ['a2']=>array(
    [0]=>gen2,
    [1]=>gen3,
    [2]=>gen3
       )
我希望我的输出是:

[a1]=>(
         [gen]=>200,
         [gen2]=>300,
         [gen]=>300,
        )
  [a2]=>(
         [gen2]=>100,
         [gen3]=>600,
         [gen3]=>200,
        )
非常感谢你的帮助

我尝试了这段代码,并能够得到我想要的结果,除非有一个重复,它不显示重复值,或者如果有选择,如果关键是重复的,它必须添加值

再次感谢你的帮助

<?php
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200));
$array2 = array(a1=>array('gen','gen2','gen'), a2=>array('gen2','gen3','gen3'));
$result = array();
foreach($array1 as $k => $v) {
$result[$k] = array_combine($array2[$k], $v);
}

print_r($result);
?>

您应该使用该功能

$array1 = array(200,300,300);
$array2 = array('gen','gen2','gen3');

$result = array_combine($array2, $array1); // $result will be your desired array 
你可以把它和foreach结合起来完成这项工作

<?php
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200));
$array2 = array(a1=>array('gen','gen2','gen3'), a2=>array('gen2','gen3','gen7'));
$result = array();
foreach($array1 as $k => $v) {
    $result[$k] = array_combine($array2[$k], $v);
}
print_r($result);
?>

您应该使用该功能

$array1 = array(200,300,300);
$array2 = array('gen','gen2','gen3');

$result = array_combine($array2, $array1); // $result will be your desired array 
你可以把它和foreach结合起来完成这项工作

<?php
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200));
$array2 = array(a1=>array('gen','gen2','gen3'), a2=>array('gen2','gen3','gen7'));
$result = array();
foreach($array1 as $k => $v) {
    $result[$k] = array_combine($array2[$k], $v);
}
print_r($result);
?>

使用:

注意:在您提供
print\r()
输出时,我重建了您的阵列。但这应该让你开始了。

使用:

注意:在您提供
print\r()
输出时,我重建了您的阵列。但是这应该可以让您开始了。

PHP
array\u combine()
在这种情况下非常有用

$a1 = array(200,300,300);
$a2 = array('gen','gen2','gen3');

var_dump(array_combine($a2, $a1));
函数参考:

PHP
array\u combine()
在这种情况下非常有用

$a1 = array(200,300,300);
$a2 = array('gen','gen2','gen3');

var_dump(array_combine($a2, $a1));

函数参考:

以下是我的工作示例:

 $arr1 = array(
    (0)=>200,
    (1)=>300,
    (2)=>300
    );

 $arr2=array(
    (0)=>100,
    (1)=>600,
    (2)=>200
    );

  $a1=array(
    (0)=>'gen',
    (1)=>'gen2',
    (2)=>'gen3'
       );
   $a2=array(
    (0)=>'gen2',
    (1)=>'gen3',
    (2)=>'gen7'
       );


var_dump(array_combine($a1, $arr1));

在我的本地主机上测试。

以下是我的工作示例:

 $arr1 = array(
    (0)=>200,
    (1)=>300,
    (2)=>300
    );

 $arr2=array(
    (0)=>100,
    (1)=>600,
    (2)=>200
    );

  $a1=array(
    (0)=>'gen',
    (1)=>'gen2',
    (2)=>'gen3'
       );
   $a2=array(
    (0)=>'gen2',
    (1)=>'gen3',
    (2)=>'gen7'
       );


var_dump(array_combine($a1, $arr1));

在我的本地主机上测试。

@DevlshOne,他承认是个新手,让我们放松一下。@DevlshOne,他承认是个新手,让我们放松一下。接下来的问题是,如果我想显示的密钥中有重复项,因为它只是覆盖了重复密钥,该怎么办。再次感谢您提出了一个后续问题,如果我要显示的密钥中存在重复项,那该怎么办?因为它只是覆盖了重复的密钥。再次感谢您提出了一个后续问题,如果我要显示的密钥中存在重复项,该怎么办?因为它只会覆盖重复的密钥。我忘了这是我不能使用联合收割机功能的主要原因。再次感谢您提出了一个后续问题,如果我要显示的密钥中存在重复项,该怎么办?因为它只会覆盖重复的密钥。我忘了这是我不能使用联合收割机功能的主要原因。再次感谢您提出了一个后续问题,如果我要显示的密钥中存在重复项,该怎么办?因为它只会覆盖重复的密钥。我忘了这是我不能使用联合收割机功能的主要原因。谢谢,我会查你的答案…稍等一下…数组的全部要点是要有唯一的键…抱歉,只是一个后续问题,如果我想显示的键中有一个重复的键,会怎么样,因为它只是覆盖了重复的键。我忘了这是我不能使用联合收割机功能的主要原因。谢谢你,我会查你的答案…稍等一下…数组的全部目的就是要有唯一的键…对不起