【问题标题】:Merge multi-dimensional array elements in php在php中合并多维数组元素
【发布时间】:2025-12-11 16:20:04
【问题描述】:

我在 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',
    )
)

);`

任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 你有测试过的代码吗?
  • 你的数据结构暗示了一个更深层次的问题。
  • 在寻求帮助之前你有没有尝试过?
  • 我是 php 新手,不知道结构。感谢帮助。这对我帮助很大。

标签: php arrays multidimensional-array merge


【解决方案1】:

您的第一个问题是 $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)

?>

【讨论】: