数组推送显示多维数组

I have following array :

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
        )
)

And same is the 2nd array :

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

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

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

I want to append 1st array into 2nd array if count of 1st array is less than 3 so for that I used array push function and did like this :

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

Now after array_push it showing the array like this (multidimensional)

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
                )   

        )

)

I dont want like this (multidimensional). I want it to append with key 4,5 and so on. Can it possible if yes then how?

Thanks.

You should use array_merge instead.

$result = array_merge($secondArr, $firstArr);

array_push inserts one new element into the array. You want to merge two arrays:

$firstArray = array_merge($firstArray, $secondArray);

As according to the PHP.net specification for array_push:

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:

So it wouldn't work. You would want to use array_merge instead of array_push, in the exact same way.

Use array_merge

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

array_push — Push one or more elements onto the end of array

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

You can do:

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

or you can simply merge:

$new_array = array_merge($array1 , $array2);

if you still insists in using array push, try this :

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

but i agree to use array_merge.

You can try the following code with array_merge

if (count($secondArr) < 3) {
            array_merge($secondArr, $firstArr);
        }