Добавить переменные в таблицу символов из функции php - PullRequest
0 голосов
/ 21 ноября 2011

В настоящее время я использую 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 ]

2 голосов
/ 21 ноября 2011
$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 голос
/ 21 ноября 2011

Как это работает для вас?

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

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

}

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...