2015-07-03 63 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 
     ) 

) 

有很多方法可以实现同样的事情。越容易越好!

相关问题