3

2 番目の配列の最初のエントリが最初の配列の最初のエントリの後に続くように新しい配列を並べ替えながら、3 つの配列を 1 つにマージする必要があります。

例:

$array1 = array(dog, cat, mouse);
$array2 = array(table, chair, couch);
$array3 = array(car, bike, bus);

これらの配列は、次の配列になります。

$resultarray = array(dog, table, car, cat, chair, bike, mouse, couch, bus);

ご回答ありがとうございます。

4

3 に答える 3

8

あなたに必要なのは :

$resultarray = array();
foreach(array_map(null, $array1, $array2, $array3) as $set) {
    $resultarray = array_merge($resultarray, $set);
}
print_r($resultarray);

出力

Array
(
    [0] => dog
    [1] => table
    [2] => car
    [3] => cat
    [4] => chair
    [5] => bike
    [6] => mouse
    [7] => couch
    [8] => bus
)

ライブデモを見る

または単純な 1 行のソリューション - @deceze

call_user_func_array('array_merge', array_map(null, $array1, $array2, $array3));

一行デモ

于 2013-05-22T09:26:57.610 に答える
2

これを試して :

$array1 = array('dog', 'cat', 'mouse');
$array2 = array('table', 'chair', 'couch');
$array3 = array('car', 'bike', 'bus');

$result = call_user_func_array('array_merge', call_user_func_array('array_map', array(null,$array1,$array2,$array3)));

echo "<pre>";
print_r($result);

編集decezeのコメントによると:

$result = call_user_func_array('array_merge', array_map(null,$array1,$array2,$array3));

インナーcall_user_func_arrayは取り外します。

出力:

Array
(
    [0] => dog
    [1] => table
    [2] => car
    [3] => cat
    [4] => chair
    [5] => bike
    [6] => mouse
    [7] => couch
    [8] => bus
)
于 2013-05-22T09:29:49.897 に答える
1

別の1行のソリューション:

$result = array_reduce(array_map(null, $array1, $array2, $array3), 'array_merge', array());
于 2013-05-22T09:41:15.947 に答える