如何在PHP中将多维数组更改为嵌套数组?

如何在PHP中将多维数组更改为嵌套数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,如何转换以下数组:(假设我不知道数组的深度和键名) 转换为以下格式:(请告诉我如何使用递归) 我是PHP新手,需要帮助 谢谢大家! 假设您的语法和深度总是相同的,那么上面的操作可以按照下面的步骤完成 有更干净的方法可以做到这一点,但是您还没有提供任何您试图处理递归的方法 $output = array(); foreach($array['ycol'] as $iteration){ $head = array_keys($iteration); $sub = $head[0];

如何转换以下数组:(假设我不知道数组的深度和键名)

转换为以下格式:(请告诉我如何使用递归)

我是PHP新手,需要帮助


谢谢大家!

假设您的语法和深度总是相同的,那么上面的操作可以按照下面的步骤完成

有更干净的方法可以做到这一点,但是您还没有提供任何您试图处理递归的方法

$output = array();
foreach($array['ycol'] as $iteration){
    $head = array_keys($iteration);
    $sub = $head[0];
    $output[] = array(
        'head' => $sub, 
        'head1' => $iteration[$sub][0], 
        'o1' => $iteration[$sub][1][0],
        'o2' => $iteration[$sub][1][1], 
        'head2' => $iteration[$sub][2]
    );
}

$array = $output;

print_r($output);

多维数组中的
'head'
在哪里?'head'是需要为'name1'添加的关键。与其余部分相同。如果您不知道数组的深度或它们的键名,您如何知道结果数组中的内容?应该为
键分配什么?应该为
o1
分配什么还有:这些数据来自哪里?也许在$array=array('xcol'=>array('head','head1','o1','o2','head2')中更容易找到问题的解决方案;需要匹配另一个数组。
$array = array(
array('head'=>'name1','head1'=>'data1','o1'=>'a','o2'=>'1','head2'=>'data3'),
array('head'=>'name2','head1'=>'data1','o1'=>'b','o2'=>'2','head2'=>'data3'),
array('head'=>'name3','head1'=>'data1','o1'=>'c','o2'=>'3','head2'=>'data3'),
array('head'=>'name4','head1'=>'data1','o1'=>'d','o2'=>'4','head2'=>'data3'),
array('head'=>'name5','head1'=>'data1','o1'=>'e','o2'=>'5','head2'=>'data3')
);
$output = array();
foreach($array['ycol'] as $iteration){
    $head = array_keys($iteration);
    $sub = $head[0];
    $output[] = array(
        'head' => $sub, 
        'head1' => $iteration[$sub][0], 
        'o1' => $iteration[$sub][1][0],
        'o2' => $iteration[$sub][1][1], 
        'head2' => $iteration[$sub][2]
    );
}

$array = $output;

print_r($output);