How can I rename keys in an array?
Start with this array named $start_array,
[0] =>
[date] => 2012-05-01
[revenue] => 100
[1]
Old name of the key of array is 'name' and new name is 'new_name'
$myrow=array('name'=>'Sabuj');
$myrow['new_name']=$myrow['name'];
unset($myrow['name']);
print_r($myrow);
Result: Array ( [new_name] => 'Sabuj' )
$new_keys = array( 'old1'=>'new1', 'old2'=>'new2', ... );
foreach( $array as $key=>$value ) $newarray[$new_keys[$key]]=$value;
foreach( $start_array as &$arr ) {
$arr["x"] = $arr['date'];
unset( $arr['date'] );
$arr['y'] = $arr['revenue'];
unset( $arr['revenue'] );
}
unset($arr);
Try the above code.
You could use array_combine
.
$new_arr = array_map(function ($val) {
return array_combine(array('x', 'y'), $val);
}, $arr);
The working demo.
Or just ues a loop:
foreach ($arr as &$el) {
$el = array_combine(array('x', 'y'), $el);
}