如何转换以下数组:(假设我不知道数组和键名的深度有多少)
$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新手,需要帮助!
谢谢!
答案 0 :(得分: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);