[英]php combining two arrays under a joint key
我有以下兩個數組:
$Array1 = array(array('x1','x2','x3'),array('x4','x5','x6'));
$Array2 = array(array('z1','z2','z3'),array('z4','z5','z6'));
打印時,他們返回:
Array
(
[0] => Array
(
[x1] => x1
[x2] => x2
[x3] => x3
)
[1] => Array
(
[x4] => x4
[x5] => x5
[x6] => x6
)
)
Array
(
[0] => Array
(
[z1] => z1
[z2] => z2
[z3] => z3
)
[1] => Array
(
[z4] => z4
[z5] => z5
[z6] => z6
)
)
如何組合它們以生成單個數組,如下例所示,它們使用相同的鍵組合:
Array
(
[0] => Array
(
[x1] => x1
[x2] => x2
[x3] => x3
[z1] => z1
[z2] => z2
[z3] => z3
)
[1] => Array
(
[x4] => x4
[x5] => x5
[x6] => x6
[z1] => z4
[z2] => z5
[z3] => z6
)
)
我嘗試過使用:
array_merge=($Array1,$Array2)
array_merge_recursive($Array1,$Array2)
array_combine($Array1,$Array2) [which genereated an error, so I guess I was using it wrong]
$ Array1 + $ Array2
但這些都沒有奏效。
這樣的事情應該有效:
$output = array();
foreach ($Array1 as $key => $arr) {
$output[] = array_merge($arr, $Array2[$key]);
}
您必須記住,您在多維數組上使用這些函數。 你使用array_merge在正確的軌道上,但你必須在你的數組的第二級調用它,你將不得不迭代第一級
因此,在這些數組中的每個第二級元素上調用array_merge應該可以工作:
$Array1 = array(array('x1','x2','x3'),array('x4','x5','x6'));
$Array2 = array(array('z1','z2','z3'),array('z4','z5','z6'));
$output = array();
foreach ($Array1 as $key=>$value) {
$output[$key] = array_merge($value, $Array2[$key]);
// same as:
//$output[$key] = array_merge($Array1[$key], $Array2[$key]);
}
並且您將獲得$ output的最終值
嘗試
$Array1 = array_merge(array('x1','x2','x3'),array('x4','x5','x6'));
$Array2 = array_merge(array('z1','z2','z3'),array('z4','z5','z6'));
$Array = array_merge($Array1,$Array2)
嘗試這個
$arr1 = array_merge($Array1[0],$Array2[0]);
$arr2 = array_merge($Array1[1],$Array2[1]);
$array = array($arr1, $arr2);
即使您沒有數字索引,這也有效:
$Array1 = array(array('x1','x2','x3'),array('x4','x5','x6'));
$Array2 = array(array('z1','z2','z3'),array('z4','z5','z6'));
$new_array = array();
foreach($Array1 as $key => $val) {
if(array_key_exists($key, $Array2)) {
$new_array[$key] = array_merge($val, $Array2[$key]);
}
}
echo '<pre>';
print_r($new_array);
echo '</pre>';
嘗試這個。
<?php
$Array1 = array(array('x1' => 'x1', 'x2' => 'x2', 'x3' => 'x3'),
array('x4' =>'x4','x5' =>'x5','x6' =>'x6'));
$Array2 = array(array('z1' =>'z1', 'z2' =>'z2', 'z3' =>'z3'),
array('z4' =>'z4','z5' =>'z5', 'z6' =>'z6'));
$final=array();
foreach($Array1 as $key1=>$arr1)
{
foreach($Array2 as $key2=>$arr2)
{
if($key1==$key2)
{
$sub=array_merge($arr1,$arr2);
$final[]=$sub;
}
}
}
echo '<pre>';
print_r($final);
echo '</pre>';
?>
你可以在這里查看工作演示( http://codepad.org/1Eu9vjah )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.