0

私は次の配列を持っています:

Array
(
    [0] => Array
        (
            [id] => 23
            [title] => jkl
        )

    [1] => Array
        (
            [id] => 478
            [title] => lmn
        )

    [2] => Array
        (
            [id] => 22
            [title] => pqr
        )

    [3] => Array
        (
            [id] => 21
            [title] => abc
        )
)

同じことが2番目の配列です:

Array
(
    [0] => Array
        (
            [id] => 103
            [title] => Activities
        )

    [1] => Array
        (
            [id] => 76
            [title] => Top 10 Ideas
        )

    [2] => Array
        (
            [id] => 9
            [title] => Best Shopping Areas
        )    
)

最初の配列の数が3未満の場合、最初の配列を2番目の配列に追加したいので、配列プッシュ関数を使用して次のようにしました:

if (count($secondArr) < 3) {
            echo "<pre>";
            echo array_push($secondArr, $firstArr);
            print_r($result);
            exit;
        }

array_push の後、このような配列が表示されます (多次元)

Array
(
    [0] => Array
        (
            [id] => 76
            [title] => Activities
        )

    [1] => Array
        (
            [id] => 103
            [title] => Top 10 Ideas
        )

    [2] => Array
        (
            [id] => 9
            [title] => Best Shopping Areas
        )

    [3] => Array
        (
            [0] => Array
                (
                    [id] => 23
                    [title] => jkl
                )

            [1] => Array
                (
                    [id] => 478
                    [title] => lmn
                )

            [2] => Array
                (
                    [id] => 22
                    [title] => pqr
                )

            [3] => Array
                (
                    [id] => 21
                    [title] => abc
                )   

        )

)

私はこのようにしたくない(多次元)。キー4,5などを追加したい。はいの場合、どのように可能ですか?

ありがとう。

4

7 に答える 7

2

array_merge代わりに使用する必要があります。

$result = array_merge($secondArr, $firstArr);
于 2012-10-04T06:21:57.383 に答える
1

array_push のPHP.net 仕様によると、次のようになります。

array_push() treats array as a stack, and pushes the passed variables onto the end of array. The length of array increases by the number of variables pushed. Has the same effect as:

だからうまくいかない。array_merge, の代わりにarray_push、まったく同じ方法で使用することをお勧めします。

于 2012-10-04T06:23:29.653 に答える
1

array_merge を使用する

http://in2.php.net/manual/en/function.array-merge.php

array_push — 1 つまたは複数の要素を配列の末尾にプッシュする

http://au.php.net/manual/en/function.array-push.php

于 2012-10-04T06:23:30.860 に答える
1

array_push配列に1 つの新しい要素を挿入します。2 つの配列をマージします。

$firstArray = array_merge($firstArray, $secondArray);
于 2012-10-04T06:21:46.750 に答える
0

できるよ:

$array1 = array(array(1,2,3),array(1,2,3));
$array2 = array(array(4,5,6),array(4,5,6));

if(count($array2) > 3){
    foreach($array2 as $val){
            $array1[] = $val;
    }
}
print_r($array1);

または、単純にマージできます:

$new_array = array_merge($array1 , $array2);
于 2012-10-04T06:32:29.513 に答える
0

それでも配列プッシュの使用を主張する場合は、これを試してください:

if (count($secondArr) < 3) {
    echo "<pre>";
    foreach($firstArr as $arr){
        array_push($secondArr,$arr);
    }
    print_r($secondArr);
    exit;
}

ただし、array_merge を使用することに同意します。

于 2012-10-04T06:42:45.753 に答える
0

次のコードを array_merge で試すことができます

if (count($secondArr) < 3) {
            array_merge($secondArr, $firstArr);
        }
于 2012-10-04T07:24:35.540 に答える