0

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

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

extract($data);

因为.是 PHP 中的非法字符,所以在我运行extract.

我想以某种方式删除点并将整个字段更改为驼峰式。意思是说,在事先不知道 中的键的情况下$data,我想以某种方式返回新定义的变量:

$quotationId = 1;
$quotationProjectId = 2;

我该如何做到这一点?

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

4

2 回答 2

5

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

foreach ($data AS $k => $v) {
    $key = str_replace(' ', '', ucwords(str_replace('.', ' ', $k)));
    ${$key} = $v;
}
于 2013-08-28T08:29:21.617 回答
0

你可以试试这个

<?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);
?>
于 2013-08-28T08:40:29.000 回答