10

2 つの配列があります。これら 2 つの配列を 1 つの配列にマージしたいと考えています。以下の詳細をご覧ください。

最初の配列:

Array
(
    [0] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 3
        )

    [1] => Array
        (
            [a] => 3
            [b] => 2
            [c] => 1
        )
)

2 番目の配列:

Array
(
    [0] => Array
        (
            [d] => 4
            [e] => 5
            [f] => 6
        )

    [1] => Array
        (
            [d] => 6
            [e] => 5
            [f] => 4
        )
)

この結果が欲しい。誰かがこれを行う方法を知っていますか?

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 3
            [1] => 2
            [2] => 1
        )
    [2] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [3] => Array
        (
            [0] => 6
            [1] => 5
            [2] => 4
        )
)

質問を理解していただければ幸いです。前もって感謝します。

4

5 に答える 5

13

試してくださいarray_merge

$result = array_merge($array1, $array2);
于 2011-12-19T13:27:01.910 に答える
3

修正済み(再度)

function array_merge_to_indexed () {
    $result = array();

    foreach (func_get_args() as $arg) {
        foreach ($arg as $innerArr) {
            $result[] = array_values($innerArr);
        }
    }

    return $result;
}

無制限の数の入力配列を受け入れ、すべてのサブ配列をインデックス付き配列として 1 つのコンテナーにマージし、結果を返します。

EDIT 03/2014:読みやすさと効率の改善

于 2011-12-19T13:27:52.973 に答える
2

よりシンプルでモダンな方法は次のとおりです。

$merged = $array1 + ['apple' => 10, 'orange' => 20] + ['cherry' => 12, 'grape' => 32];

PHP 5.4からの新しい配列構文

于 2013-08-23T07:08:12.983 に答える
1

質問で指定した正確な結果を返したい場合は、このようなものが機能します

function array_merge_no_keys() {
    $result = array();
    $arrays = func_get_args();
    foreach( $arrays as $array ) {
        if( is_array( $array ) ) {
            foreach( $array as $subArray ) {
                $result[] = array_values( $subArray );
            }
        }
    }
    return $result;
}
于 2011-12-19T13:47:11.763 に答える