2014-03-01 159 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) 

?>