2017-05-14 101 views
0

我想結合兩個多維數組的方式,在結果數組中,array1的值作爲array2的鍵。PHP結合了兩個多維數組,並使用一個數組作爲鍵

這是兩個例子數組:

$array1 = array(
    array('data1'), 
    array('data2'), 
    array('data3') 
); 

$array2 = array(
    array('5','12','4'), 
    array('8','2','17'), 
    array('20','15','3') 
); 

結果數組應該是這樣的:

$array = array(
    'data1' => array('5','12','4'), 
    'data2' => array('8','2','17'), 
    'data3' => array('20','15','3') 
); 

我怎麼能做到這一點? 謝謝!

+0

檢查我的【答案】(http://stackoverflow.com/a/43959622/6521116) –

回答

2

你可以做這樣的事情

$array = []; 
$count = count($array1); 
for($index = 0; $index < $count; $index++) 
{ 
    $array[$array1[$index][0]] = $array2[$index]; 
} 

這應該做你正在努力實現

+0

真棒 - 我只是測試它和它的作品:○ )) 非常感謝你! – schustischuster

+0

:) np高興地幫忙! – zenwraight

0
$array1 = array(
array('data1'), 
array('data2'), 
array('data3') 
); 
$array2 = array(
array('5','12','4'), 
array('8','2','17'), 
array('20','15','3') 
); 
$main_array=array(count($array1)); 
foreach($array as $array_item){ 
$array_item=array(count($array2)); 
for($i=1;$i<count($array2);$i++){ 
array.push($array_item,$array2[$i]); 
} 
array.push($main_array,$array_item); 
} 
echo "<br>"; 
print_r($main_array); 
echo "</br>"; 
1

您可以使用array_combine鑰匙和值組合到一個新的數組什麼。您可以檢查live demo here

array_combine(array_map(function($v){return $v[0];},$array1), $array2); 
+1

謝謝克里斯你的解決方案完美無缺! – schustischuster

1

使用array_map(),它允許您使用用戶定義的功能。

<?php 

$array1 = array(
    array('data1'), 
    array('data2'), 
    array('data3') 
); 

$array2 = array(
    array('5', '12', '4'), 
    array('8', '2', '17'), 
    array('20', '15', '3') 
); 

function mapArray($array1, $array2) { 
    return [$array1[0] => $array2]; 
} 

$new_arr = array_map("mapArray", $array1, $array2); 

輸出

enter image description here