猿问
下载APP

合并两个数组

合并两个数组

我有两个像这样的数组:


array( 

'11' => '11',

'22' => '22',

'33' => '33',

'44' => '44'

);


array( 

'44' => '44',

'55' => '55',

'66' => '66',

'77' => '77'

);

我想组合这两个数组,使它不包含重复,并保留其原始键。例如输出应该是:


array( 

'11' => '11',

'22' => '22',

'33' => '33',

'44' => '44',

'55' => '55',

'66' => '66',

'77' => '77'

);

我试过这个,但它正在更改原来的密钥:


$output = array_unique( array_merge( $array1 , $array2 ) );

有解决方案吗


隔江千里
浏览 44回答 3
3回答

MMMHUHU

只需使用:$output = array_merge($array1, $array2);那应该解决它。因为如果一个键出现多次(例如'44'在您的示例中),则使用字符串键,一个键将覆盖具有相同名称的过程键。因为在你的情况下,它们都具有相同的值,无论如何它都无关紧要,它也将删除重复。更新:我刚刚意识到,PHP将数字字符串键视为数字(整数),所以表现得像这样,这意味着,它也重新编号键...解决方法是重新创建密钥。$output = array_combine($output, $output);更新2:我总是忘记,还有一个操作员(粗体,因为这是你真正想要的!:D)$output = $array1 + $array2;所有这些都可以在以下网址看到:http: //php.net/manual/en/function.array-merge.php

三国纷争

你应该考虑到这一点 $array1 + $array2 != $array2 + $array1$array1 = array('11' => 'x1','22' => 'x1' );  $array2 = array('22' => 'x2','33' => 'x2' );使用$ array1 + $ array2$array1 + $array2 = array('11' => 'x1','22' => 'x1','33' => 'x2');和$ array2 + $ array1$array2 + $array1 = array(  '11' => 'x1',  '22' => 'x2',  '33' => 'x2'  );

慕函数4003404

这有效:$output = $array1 + $array2;
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答