2015-07-03 64 views
2

我已經做了這麼多的搜索,我是初學者在PHP我不知道到底什麼問題標題我應該寫,所以請我很抱歉,我正在盡我所能解釋我想要什麼。請幫幫我。如何在第一個數組的基礎上組合兩個數組

我有兩個數組

Array 
(
    [0] => vodlocker 
    [1] => vodlocker 
    [2] => vodlocker 
    [3] => vidzi 
    [4] => vodlocker 
) 
Array 
(
    [0] => vod1 
    [1] => vod2 
    [2] => vod3 
    [3] => vidzi1 
    [4] => vod4 
) 

我想兩者都做陣列的第一陣列組合成鍵和第二的值,如果第一陣列具有相同的鍵,以便第二列的值將合併爲同一按鍵中i對不起,如果解釋不好,但我的結果會告訴我想要什麼。

結果:

Array 
(
    vodlocker => array(vod1, vod2, vod3, vod4) 
    vidzi  => array(vidzi1) 
) 

我已經試過這一點。

注:$主機是我的第一陣列和$源是我的第二陣列如上圖所示

$data = []; 
$linkarray = []; 
foreach($host as $key => $ho){ 
    array_push($linkarray, $source[$key]); 
    $data[$ho] = $linkarray; 
} 
array:2 [▼ 
    "vodlocker" => array:5 [▼ 
    0 => "vod1" 
    1 => "vod2" 
    2 => "vod3" 
    3 => "vidzi1" 
    4 => "vod4" 
    ] 
    "vidzi" => array:4 [▼ 
    0 => "vod1" 
    1 => "vod2" 
    2 => "vod3" 
    3 => "vidzi1" 
    ] 
] 
+2

發表你的代碼你已經嘗試過 –

+0

ok先生我已經嘗試過 – Sufyan

回答

2

我認爲此代碼應解決您的問題:

$array1 = array(
    0 => "vodlocker", 
    1 => "vodlocker", 
    2 => "vodlocker", 
    3 => "vidzi", 
    4 => "vodlocker" 
); 
$array2 = array(
    0 => "vod1", 
    1 => "vod2", 
    2 => "vod3", 
    3 => "vidzi1", 
    4 => "vod4" 
); 

$res = array(); 
for($i = 0; $i < 5; $i++) 
{ 
    if(!isset($res[$array1[$i]])) 
     $res[$array1[$i]] = array(); 
    $res[$array1[$i]][] = $array2[$i]; 
} 

print_r($res); 

Output

Array 
(
    [vodlocker] => Array 
     (
      [0] => vod1 
      [1] => vod2 
      [2] => vod3 
      [3] => vod4 
     ) 

    [vidzi] => Array 
     (
      [0] => vidzi1 
     ) 

) 
1

如果我是要做到這一點,我會做這種方式:

Demo

<?php 

$defs = array('vodlocker', 'vodlocker', 'vodlocker', 'vidzi', 'vodlocker'); 
$data = array('vod1', 'vod2', 'vod3', 'vidzi1', 'vod4'); 

$final = array(); 

foreach($defs as $eachkey=>$eachdef){ 
    $final[$eachdef][] = $data[$eachkey]; 
} 

print_r($final); 
?> 

輸出:

Array 
(
    [vodlocker] => Array 
     (
      [0] => vod1 
      [1] => vod2 
      [2] => vod3 
      [3] => vod4 
     ) 

    [vidzi] => Array 
     (
      [0] => vidzi1 
     ) 

) 

有很多方法可以實現同樣的事情。越容易越好!

相關問題