PHP - Переменные Переменные & array_merge () - не работает - PullRequest
1 голос
/ 09 июня 2011

У меня есть несколько массивов, которые хранятся в разных переменных, таких как $ required, $ reserved и т. Д. *

Я хотел бы разрешить (внутри функции) массив опций для передачи(как $options = array('required', 'reserved')), и этот массив затем будет использоваться для определения, какие массивы объединить и вернуть в конце функции.

Итак, у меня есть этот код в части функции, которая должназахватить все параметры и объединить массивы, используя переменные переменные, чтобы получить массивы из строк, переданных в массиве параметров):

$array = array();

foreach ($options as $key) {
  $array_to_merge = ${$key};
  array_merge($array, $array_to_merge);
}

return $array;

Однако, когда я возвращаю массив $, он показывает 0 элементов.Если я print_r($array_to_merge);, я на самом деле получаю весь массив так, как должен.

Не работает ли array_merge () с переменными или я что-то здесь упускаю ...?

Ответы [ 2 ]

4 голосов
/ 09 июня 2011

array_merge возвращает объединенный массив, вы не присваиваете это возвращаемое значение чему-либо, и поэтому оно теряется.

$array = array_merge($array, $array_to_merge);

должен исправить вашу проблему.

1 голос
/ 09 июня 2011

Если я правильно прочитал, вы также можете упростить свой код (заменяет цикл) до следующего значения:

 $array = call_user_func_array("array_merge", compact($options));

compact заменяет поиск переменной переменной и получает списокмассивы.И в действительности необходим только один array_merge вызов.

...