2014-03-01 208 views
-2

我在PHP一個這樣的數組:合併多維數組元素在PHP

$temp = array( 'vpc1' => array( 'reg1' => array ( 'sub1', ) ) 'vpc2' => array( 'reg1' => array ( 'sub2', ) ) 'vpc1' => array( 'reg1' => array ( 'sub3', ) ) );

我必須合併這些值以獲得輸出爲:

`$temp = array(
'vpc1' => array(
    'reg1' => array (
     'sub1', 
     'sub3', 
    ) 
) 
'vpc2' => array(
    'reg2' => array (
     'sub2', 
    ) 
) 

);`

任何幫助將不勝感激。提前致謝。

+1

你有沒有你測試過的任何代碼? – rusben

+6

數據的結構表明存在更深層次的問題。 –

+0

在尋求幫助之前你有沒有嘗試過任何東西? –

回答

0

您的第一個問題是您在$ temp1中的傳入數據結構。考慮一下你的數據並使之成爲atomar。這就是爲什麼一個男孩給你「-1票」......我認爲這只是一個問題。我再次投了你的問題。

<?php 

//u got this 
$temp1 = array("vpc1 | reg1 | sub1", "vpc1 | reg1 | sub2", "vpc1 | reg1 | sub3"); 
//u want this 
$temp2 = array("vpc1 | reg1 | sub1,sub2,sub3"); 

//u need this, cause thats why we use arrays in complex data structures. 
$temp = array(
    'vpc1' => array(
     'reg1' => array (
      'sub1', 
      'sub2', 
      'sub3', 
     ) 
    ) 
); 

//ugly bug working 
foreach ($temp1 as $data) { 
    $parts = preg_split("/\|/", $data); 

    // most ugly part in it. Thats where you guys should think about your data again. 
    $temp[$parts[0]][$parts[1]][$parts[2]]; 
} 

var_dump($temp); 

// array (size=1) 
//  'vpc1' => 
//   array (size=1) 
//   'reg1' => 
//    array (size=3) 
//     0 => string 'sub1' (length=4) 
//     1 => string 'sub2' (length=4) 
//     2 => string 'sub3' (length=4) 

?>