如何在php提取功能中更改非法字符?

Kim*_*cks 0 php arrays variables scope extract

我需要将以下数组中的键值对提取到变量中

$data = array(
    'Quotation.id' => 1,
    'Quotation.project_id' => 2
);

extract($data);
Run Code Online (Sandbox Code Playgroud)

因为它.是PHP中的非法字符,所以在运行时不会定义额外的变量extract.

我想以某种方式删除点并将整个字段更改为camelCase.意思是说,如果事先不知道密钥$data,我想以某种方式回到新定义的变量:

$quotationId = 1;
$quotationProjectId = 2;
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点?

请忽略新定义的变量可能与现有变量冲突的情况.假设这不会发生.

Eri*_*aan 5

正则表达式可能有一种更简单的方法,但这就是我要这样做的方法:

foreach ($data AS $k => $v) {
    $key = str_replace(' ', '', ucwords(str_replace('.', ' ', $k)));
    ${$key} = $v;
}
Run Code Online (Sandbox Code Playgroud)