2

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

$array = array(     
'ycol'=>array('1'=>array( 'name1'=>array('data1',array('a','1'),'data3')),  
'2'=>array('name2'=>array('data1',array('b','2'),'data3')),           
'3'=>array('name3'=>array('data1',array('c','3'),'data3')),           
'4'=>array('name4'=>array('data1',array('d','4'),'data3')),           
'5'=>array('name5'=>array('data1',array('e','5'),'data3'))
); 

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

$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')
);

我是 PHP 新手,需要帮助!

谢谢!

4

1 回答 1

1

假设您的语法和深度始终相同,则上述内容可以如下进行混乱。

有更简洁的方法可以做到这一点,但你没有提供任何你试图处理递归的东西。

$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);
于 2012-07-02T18:38:03.043 回答