如何将数组格式从一种多维形式更改为另一种多维形式


How to change array format from one multidimensional form to another?

我有一个以下格式的多维数组。我尝试做什么,我得到未定义的偏移错误或重复的数组单元格。

arr[] = Array
            (
            [0] => Array
                    (
                   [grp1] = A
                   [grp2]=Array(
                        [0] => a
                        [1] => b
                        [2] => c
                    )
              )
           [1] => Array
                    (
                   [grp1] = B
                   [grp2]=Array(
                        [0] => d
                        [1] => e
                    )
                  )
              )

我想将上面的数组转换为以下格式。

arr[] = Array
            (
            [0] => Array
                    (
                   [grp1] = A
                   [grp2]=a
                    )
           [1] => Array
                    (
                   [grp1] = A
                   [grp2]=b
                    )
             [2] => Array
                    (
                   [grp1] = A
                   [grp2]=c
                    )
           [3] => Array
                    (
                   [grp1] = B
                   [grp2]=d
                    )
          [4] => Array
                    (
                   [grp1] = B
                   [grp2]=e
                    )
           )

首先很抱歉,我的问题没有得到很好的解释。实际上,在这种情况下我不知道该问什么。任何编辑将不胜感激。

对于像这样简单的事情,我通常不会给出完整的答案,但目前我没有太多其他事情要做。我没有用散文解释代码,而是评论了所有语句:

// Create a new array to hold the modified values
$newArr = array();
// Go over each item
foreach ($arr as $item) {
    // Grab the uppercase letter
    $uppercaseLetter = $item['grp1'];
    // Go over the lowercase letters
    foreach ($item['grp2'] as $lowercaseLetter) {
        // Combine the uppercase and lowercase letters
        // into a new array
        $newArr[] = array(
            'grp1' => $uppercaseLetter,
            'grp2' => $lowercaseLetter,
        );
    }
}
// Show the new array
var_dump($newArr);
$array = array();
foreach($arr as $v){
    foreach($v['grp2'] as $val){
        $array[] = array('grp1' => $v['grp1'], 'grp2' => $val);
    }
}
print_r($array);
<?php
$temp = array();
$i= 0;        
foreach($arr as $key=>$value){
foreach($value["grp2"] as $key2=>$value2){
$temp[$i]["grp1"] = $value["grp1"];
$temp[$i]["grp2"] = $value2;
++$i;
}
}
print_r ($temp);
?>

结果:

Array ( 
[0] => Array ( [grp1] => A [grp2] => a ) 
[1] => Array ( [grp1] => A [grp2] => b ) 
[2] => Array ( [grp1] => A [grp2] => c ) 
[3] => Array ( [grp1] => B [grp2] => d ) 
[4] => Array ( [grp1] => B [grp2] => e ) )