I have an array like this
$data = array(
'class'=>'1',
'class_section'=>array('a','b','c'),
'class_fee'=>'500');
I want that this array become
$data = array(
array('class'=>'1', 'class_section'=>'a', 'class_fee'=>500),
array('class'=>'1', 'class_section'=>'b', 'class_fee'=>500),
array('class'=>'1', 'class_section'=>'c', 'class_fee'=>500)
);
I want that this array become
$data = array(
array('class'=>'1', 'section'=>'a', 'fee'=>500),
array('class'=>'1', 'section'=>'b', 'fee'=>500),
array('class'=>'1', 'section'=>'c', 'fee'=>500)
);
You can do it by many differnt ways.One way to do it with foreach()
loop,
<?php
$data = array(
'class'=>'1',
'class_section'=>array('a','b','c'),
'class_fee'=>'500'
);
$len = count($data);
for($i=0;$i<$len;$i++){
foreach($data as $k=>$v){
if(is_array($v)){
$result[$i][$k] = $v[$i];
}else{
$result[$i][$k] = $v;
}
}
}
print_r($result);
?>
WORKING DEMO: https://3v4l.org/N4YvD
You can make it with foreach
:
$data = [
'class'=>'1',
'class_section'=> ['a','b','c'],
'class_fee'=>'500'
];
$newArray = [];
foreach($data['class_section'] as $section) {
$newArray[] = [
'class' => $data['class'],
'section' => $section,
'fee' => $data['class_fee']
];
}