从php函数向符号表添加变量

时间:2011-11-20 23:39:26

标签: php cakephp

我目前正在使用CakePHP,它大量使用关联数组。对于我的应用程序中的一个函数,如果我可以从这些数组中的某些数据创建单独的变量将是有用的。例如,数组可能如下所示:

Array
(
    [User] => Array
        (
            [id] => 1
            [name] => Joe Bloggs
            [email] => test@test.com
        )

    [Post] => Array
        (
            [id] => 1
            [title] => Hello World
        )

    [Profile] => Array
        (
            [id] => 1
            [location] => London
       )

)

我想创建一个可以将数组拆分为3并给我三个新变量的函数。

我看过extract(),但它并没有按照我想要的方式运作。我想创建三个新变量:

$user: 

Array
(
    [User] => Array
        (
            [id] => 1
            [name] => Joe Bloggs
            [email] => test@test.com
        )
)

$post:

Array(
    [Post] => Array
        (
            [id] => 1
            [title] => Hello World
        )
)

$profile:

Array(
    [Profile] => Array
        (
            [id] => 1
            [location] => London
       )
)

是否可以创建一个能够将这些变量添加到符号表中的函数,或者我只是能够返回它们?

2 个答案:

答案 0 :(得分:2)

$array = array(
 'value1'=> array('name' => 'john'),
 'value2'=> array('name' => 'sim')
);
function createVars($data) {
  foreach ($data as $key => $val) {
    global ${$key};
    ${$key} = $val;
  }
}
createVars($array);
// Now you should be able to access $value1 and $value2

请查看此链接http://php.net/manual/en/language.variables.variable.php

答案 1 :(得分:1)

这对你有什么用?

foreach( $input_array as $key => $value ){

   $variable_name = strtolower( $key );
   $$variable_name = array( $value );

}

希望有帮助...