2

配列の配列があります。

例えば:

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

これを1つのアレイにフラット化/マージする最も簡単な方法は何ですか?

結果は次のようになります。

$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);
  }
}
4

2 に答える 2

13

PHP 5.6以降では、...演算子を使用して引数を指定できます。

array_merge(...$array)

古い答え

提案されているように、これに使用できますarray_merge。値がいくつあるかわからない場合は、$array次のようなものを使用できます。

call_user_func_array('array_merge', $array);
于 2012-02-06T07:50:34.820 に答える
4

array_mergeはその法案に適合します。

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

または、反復を主張する場合:

$result = array();
foreach ($array as $nested) {
     $result = array_merge($result, $nested);
}
于 2012-02-06T07:46:57.403 に答える