0

次のような2つの配列があるとします。

$arr2 = array(array("first", "second"), array("third", "fourth"));
$arr3 = array(array("fifth", "sixth", "seventh"), array("eighth", "ninth"), array("tenth", "eleventh"));

そして、私はこのような結果が欲しいです:

$arr4 =  array("first", "second", "third", "fourth", "fifth", "sixth", "seventh","eighth", "ninth","tenth", "eleventh" );

どうやってするか?PHPで

4

2 に答える 2

2

あなたがしたいのは、配列を平坦化して結合することです。array_values の PHP マニュアルのコメントに、平坦化のための便利な関数があります。 http://www.php.net/manual/en/function.array-values.php#104184

コードは次のとおりです。

/**
 * Flattens an array, or returns FALSE on fail.
 */
function array_flatten($array) {
  if (!is_array($array)) {
    return FALSE;
  }
  $result = array();
  foreach ($array as $key => $value) {
    if (is_array($value)) {
      $result = array_merge($result, array_flatten($value));
    }
    else {
      $result[$key] = $value;
    }
  }
  return $result;
}

でこれを実行するだけarray($arr2, $arr3)です。

于 2012-04-09T13:59:29.387 に答える
0
function flatten($ar,&$res) {
  if (is_array($ar))
    foreach ($ar as $e) flatten($e,$res);
  else
    $res[]=$ar;
}

$arr2 = array(array("first", "second"), array("third", "fourth"));
$arr3 = array(array("fifth", "sixth", "seventh"), array("eighth", "ninth"), array("tenth", "eleventh"));

$arr4=array();
flatten($arr2,$arr4);
flatten($arr3,$arr4);
于 2012-04-09T13:58:43.617 に答える