我需要将以下数组中的键值对提取到变量中
$data = array(
'Quotation.id' => 1,
'Quotation.project_id' => 2
);
extract($data);
因为.
在PHP中是非法字符,所以在运行extract
时没有定义额外的变量。
我想以某种方式删除这些点,并将整个字段更改为camelCase。也就是说,在事先不知道$data
中的密钥的情况下,我想以某种方式回到新定义的变量:
$quotationId = 1;
$quotationProjectId = 2;
我该如何做到这一点?
请忽略新定义的变量可能与现有变量冲突的情况。假设这种情况不会发生。
使用正则表达式可能有一种更简单的方法,但我会这样做:
foreach ($data AS $k => $v) {
$key = str_replace(' ', '', ucwords(str_replace('.', ' ', $k)));
${$key} = $v;
}
你可以试试这个
<?php
$data = array(
'Quotation.id' => 1,
'Quotation.project_id' => 2
);
foreach($data as $key=>$value) {
$keys = array_map('ucfirst',preg_split( "/('._)/", $key ));
$newKey = implode($keys);
unset($data[$key]);
$data[$newKey] = $value;
}
export($data);
?>