2017-05-22 107 views
0

我有2個多維數組如下:轉換多維數組作爲鍵和值在PHP

數組1:

Array ( 
     [0] => Array ( 
         [0] => 2D Design 
         [1] => 3D Design & Modeling) 
     [1] => Array ([0] => Android Developer 
         [1] => Artificial Intelligence 
         [2] => Web Developer) 
     ) 

數組2:

Array ( 
     [0] => Array ( 
         [0] => 5 
         [1] => 10) 
     [1] => Array ([0] => 2 
         [1] => 4 
         [2] => 6) 
     ) 

我想上面的2個陣列組合如下面的keyvalue

Array ( 
     [0] => Array ( 
         [2D Design] => 5 
         [3D Design & Modeling] => 10) 
     [1] => Array ( 
         [Android Developer] => 2 
         [Artificial Intelligence] => 4 
         [Web Developer] => 6) 
    ) 

請幫我這麼做。將不勝感激。

+0

使用array_key和array_values – JYoThI

回答

3

使用array_combine()函數通過使用一個「keys」數組和一個「values」數組中的元素來創建一個數組。

注:兩個數組必須具有相同數量的元素!

第一個參數數組作爲新數組的關鍵字,第二個參數作爲新數組的值。

$new_array=array(); 

for($i=0;$i<count($arr1);$i++) 
{ 

    $new_array[$i]=array_combine($arr1[$i],$arr2[$i]); 
} 

print_r($new_array); 

輸出:

Array 
(
[0] => Array 
    (
     [2D Design] => 5 
     [3D Design & Modeling] => 10 
    ) 

[1] => Array 
    (
     [Android Developer] => 2 
     [Artificial Intelligence] => 4 
     [Web Developer] => 6 
    ) 

) 
+0

謝謝你..完美的作品:) – Shihas

+0

如果我的回答是有用的標記爲綠色打勾。它對未來的用戶參考有用@Shihas – JYoThI

+0

當然...這似乎很有用。 – Shihas

2

這將工作,

$arr1 = array(
    0 => array(
     0 => "2D Design", 
     1 => "3D Design & Modeling"), 
    1 => array(0 => "Android Developer", 
     1   => "Artificial Intelligence", 
     2   => "Web Developer", 
    ), 
); 
$arr2 = array(
    0 => array(
     0 => 5, 
     1 => 10, 
    ), 
    1 => array(0 => 2, 
     1   => 4, 
     2   => 6, 
    ), 
); 
$temp = []; 
foreach ($arr1 as $k => &$v) { 
    foreach ($v as $k1 => &$v1) { 
     $temp[$k][$v1] = $arr2[$k][$k1]; 
    } 
} 
print_r($temp); 

我不得不temp變量第一陣列arr1作爲密鑰的讀取值,並用作爲arr2值映射它值爲temp數組。
即使索引即0,1,2,3可以是任何東西,該代碼也可以工作。

這裏是工作code

+0

謝謝它有效:)(Y) – Shihas