Ram
Ram

Reputation: 349

merging mutidimensional arrays

I have an array that looks like this: getting array need to convert array as same key value as 0

        foreach($array as $key=>$id){               

            $consumer_data[]=$this->App_model->get_session($id);
        }

        print_r($consumer_data);

Array
(
[0] => Array
    (
        [0] => Array
            (
                [ConsumerID] => 1
                [name] => asdfd
            )

        [1] => Array
            (
                [ConsumerID] => 5
                [name] => test
            )

        [2] => Array
            (
                [ConsumerID] => 3
                [name] => test1
            )

    )

[1] => Array
    (
        [0] => Array
            (
                [ConsumerID] => 4
                [name] => test4
            )

    )

i want to implement array like this in same key value as 0

 Array
(
[0] => Array
    (
        [0] => Array
            (
                [ConsumerID] => 1
                [name] => asdfd
            )

        [1] => Array
            (
                [ConsumerID] => 5
                [name] => test
            )

        [2] => Array
            (
                [ConsumerID] => 3
                [name] => test1
            )
       [3] => Array
            (
                [ConsumerID] => 4
                [name] => test4
            )


    )

I am using PHP. Can anyone point me to a good starting point as to how I should go about doing this?

Upvotes: 0

Views: 70

Answers (4)

fortune
fortune

Reputation: 3372

Check this:

<?php
$arr[0] = array(0 => array("ConsumerID" => 1, "name" => "Ni"), 1 => array("ConsumerID" => 2, "name" => "Ab")); 
$arr[1] = array(1 => array("ConsumerID" =>5, "name" => "GE"), 1 => array("ConsumerID" => 6, "name" => "DB"));  

$new = array();

foreach($arr as $key => $value) {


        foreach($value as $innerkey => $innervalue) {

                $new[0][] = $innervalue;

        }
}


print_r($new);
?>

Upvotes: 0

Mark Miller
Mark Miller

Reputation: 7447

You can use array_merge():

$new_array[0] = array_merge($array[0], $array[1]);

Where $array is the first array.

SEE DEMO

OR for a more dynamic approach:

$new_array = array(0 => array());
foreach($array as $a) {
    $new_array[0] = array_merge($new_array[0], $a);
}

SEE DEMO 2

Upvotes: 1

Jitendra Yadav
Jitendra Yadav

Reputation: 896

Try this->

 $newArray = array();
  foreach($values as $key=>$val){
      $newArray [0][$key]=$val;

  }
  print_r($newArray);

Upvotes: 0

hsz
hsz

Reputation: 152206

The simpliest solution is to do it with:

$input = array(
    array(
        array('ConsumerID' => 1, 'name' => 'asdfd'),
        array('ConsumerID' => 5, 'name' => 'test'),
        array('ConsumerID' => 4, 'name' => 'test1'),
    ),
    array(
        array('ConsumerID' => 4, 'name' => 'test4'),
    ),
);
$output = array(
    array()
);

foreach ($input as $data) {
    $output[0] = array_merge($output[0], $data);
}

Upvotes: 1

Related Questions