我有一個關聯數組:$data = array('log_account' => 'white','log_status' => 'sql_insert');
我想要更改key,讓數組變成以下新數組$data = array('account' => 'white','status' => 'sql_insert');
foreach($data as &$data_key=>$data_value){
if($data_key=="log_account"){
$data_key = "account";
}
if($data_key=="log_status"){
$data_key = "status";
}
}
但這樣印出來資料一樣是沒有變更的,
如果是更改$data_value用&,是有用的,但是要更改$data_key就不行
想請問要怎麼做呢?
PS:補充其實有想到創建新數組的作法,但想要確定在foreach時後,是不是也有用&方法更改key的作法
$param = array();
foreach($data as $data_key=>$data_value){
if($data_key=="account_id"){
//$data_key = "log_account";
$param["log_account"] = $data_value;
}
else if($data_key=="log_status"){
$param["status"] = $data_value;
}
else {
$param[$data_key] = $data_value;
}
}
$data = ['log_account' => 'white', 'log_status' => 'sql_insert'];
$newData = array_combine(
array_map(function ($key) {
return preg_replace("#^log_#", "", $key);
}, array_keys($data)),
array_values($data)
);