在php中合并多维数组元素

时间:2014-03-01 11:25:50

标签: php arrays multidimensional-array merge

我在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 个答案:

答案 0 :(得分:0)

您的第一个问题是$ temp1中的传入数据结构。考虑一下您的数据并使其成为现实。这就是为什么有些男孩给你“-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)

?>