более простой способ сгладить или объединить массив php, чем этот? - PullRequest
1 голос
/ 06 февраля 2012

У меня есть массив массивов.

Например:

$array[] = array("1", "2", "3");
$array[] = array("5", "9", "ok");
$array[] = array("test", "ok", 8");

Какой самый простой способ сгладить / объединить это только в один массив?

Результат должен быть:

$array = array("1", "2", "3", "5", "9", "ok", "test", "ok", "8");

Есть ли более простой / легкий способ получить этот результат, чем приведенный ниже?

$result = array();
foreach ($array as $subarray) {
  foreach ($subarray as $value) {
    array_push($result, $value);
  }
}

Ответы [ 2 ]

9 голосов
/ 06 февраля 2012

Начиная с PHP 5.6, вы можете использовать оператор ... для предоставления аргументов:

array_merge(...$array)

Старый ответ

Как и предполагалось, вы можете использовать array_merge дляэтот.Если вы не знаете, сколько значений в вашем $array, вы можете использовать что-то вроде этого:

call_user_func_array('array_merge', $array);
4 голосов
/ 06 февраля 2012

array_merge будет соответствовать требованиям.

$result = array_merge($array[1], $array[2], $array[3], ..., $array[N]);

Или, если вы настаиваете на итерации:

$result = array();
foreach ($array as $nested) {
     $result = array_merge($result, $nested);
}
...