Есть ли способ автоматизации объявления переменных в массиве?

Я изучаю PHP и работаю в Codeigniter. Я чувствую, что снова набираю похожие вещи (дублирую работу), когда создаю массивы данных и объявляю переменные, которые мне нужны для функций.

Вот пример:

  //MAKE ARRAY OF USER ANSWERS TO QUESTIONS
$dropdowndata = array
(   'user_socialhour' => $this->input->post('socialhour'),
'user_socialpm' => $this->input->post('socialpm'),
'user_eventhour' => $this->input->post('eventhour'),
'user_eventpm' => $this->input->post('eventpm');

//DECLARE THE VARIABLES I NEED FOR FUNCTIONS
$user_socialhour = $this->input->post('socialhour');
$user_socialpm = $this->input->post('socialpm');
$user_eventhour = $this->input->post('eventhour');
$user_eventpm = $this->input->post('eventpm');

$calculateddata = array
('user_mornafteve' => $this->mornafteve($user_socialhour, >$user_socialpm), 'user_beforeafter' => $this->beforeafter($user_socialpm, >$user_eventpm, $user_socialhour, $user_eventhour));

Я ищу способ автоматизировать объявление всех переменных в массиве dropdowndata. Я ищу что-то вроде, для каждого ключа, объявить переменные в соответствии со следующим шаблоном.

Это существует?

0

Решение

Вы,

foreach($dropdowndata as $key=>$value) {
$$key = $this->input->post(substr($key, 5))
}

Но не уверен, зачем они вообще нужны как переменные … почему бы просто не использовать как:

//MAKE ARRAY OF USER ANSWERS TO QUESTIONS
$dropdowndata = array(
'user_socialhour' => $this->input->post('socialhour'),
'user_socialpm' => $this->input->post('socialpm'),
'user_eventhour' => $this->input->post('eventhour'),
'user_eventpm' => $this->input->post('eventpm');

$calculateddata = array(
'user_mornafteve' => $this->mornafteve($dropdowndata['user_socialhour'], $dropdowndata['user_socialpm']),
'user_beforeafter' => $this->beforeafter($dropdowndata['user_socialpm'], $dropdowndata['user_eventpm'], $dropdowndata['user_socialhour'], $dropdowndata['user_eventhour']));
0

Другие решения

Я не уверен, что полностью понимаю, что вы хотите … но вы можете превратить ключи массива в локальные переменные …

$array = ['x' => 1, 'y' => 2];
extract($array);
var_dump($x);
var_dump($y);

php test.php

INT (1)

Int (2)

Ref: http://php.net/manual/en/function.extract.php

0

По вопросам рекламы [email protected]