0

I have an array like this.

array (size=4)
 0 => 
array (size=1)
  'serial_id' => string '214' (length=3)
 1 => 
array (size=1)
  'serial_id' => string '218' (length=3)
 2 => 
array (size=1)
  'serial_id' => string '221' (length=3)
 3 => 
array (size=1)
  'serial_id' => string '319' (length=3) 

and i want this as single array

  array (size=4)
'0' => string '214' (length=3)
'1' => string '218' (length=3)
'2' => string '221' (length=3)
'3' => string '319' (length=3)

I don't want to run loop, is there any array function which gives my required output

Can anyone help me out??? I am new to array functions of php. Thanks for all answers, but waiting for Shortest answer using array functions.. This is my code in php

    <?php 
    $array = array( array('serial_id' => 214),
         array('serial_id' => 218 ),
         array('serial_id' => 221),
         array('serial_id' => 319) );
    var_dump($array);

    $array2 = array(218,214,221,319);
    var_dump($array2);
    ?>
Adrian Cid Almaguer
  • 7,815
  • 13
  • 41
  • 63
Akilsree1
  • 462
  • 1
  • 4
  • 26

3 Answers3

2

Try this..this is your old array..try to arrange it..consider it as example..

 $array = array(0 => array("serial_id"=>"214"),  
              1 => array("serial_id"=>"218"), 
              2 => array("serial_id"=>"221"),
              3 => array("serial_id"=>"319")
              ); 

You can use foreach to get inner element in one new array $new_array = array(); foreach($array as $key=>$inner_array){

   foreach($inner_array as $k=>$v){
    $new_array[$k] = $v;
   }
}



  Output will be
$new_array = array(
    'serial_id_1' => string '214',
    'serial_id_2' => string '218',
    'serial_id_3' => string '221',
    'serial_id_4' => string '319',
);
Prashant M Bhavsar
  • 1,136
  • 9
  • 13
1

Loop through the array as in the below example to produce your new array:

$array = array("0" => array("serial_id"=>"214"),  
              "1" => array("serial_id"=>"218"), 
              "2" => array("serial_id"=>"221"),
              "3" => array("serial_id"=>"319")
              );
$new_arr=array();              
foreach( $array as $key => $value ){
$new_arr["serial_id_".$key]=$value["serial_id"];
}

print_r($new_arr);

Try it out here http://sandbox.onlinephpfunctions.com/code/2291c9eaf9842fdbeda4fd69bc707d7404b390d0

Loop-through new array

foreach( $new_arr as $key => $value ){
    echo $key."\t=>\t".$value."\n";
}
1

You can try this code, I see that you are update your question

      <?php
    function convert_array($a) {
        for($j = 0; $j < count($a); $j++) {
            $b[$j] = $a[$j]['serial_id'];
        }
    return $b;
    }

   $array = array( array('serial_id' => 214),
         array('serial_id' => 218 ),
         array('serial_id' => 221),
         array('serial_id' => 319) );

    $array2 = convert_array($array);

        var_dump($array2);

        ?>  

If you use php > 5.5.0

   <?php

   $array = array( array('serial_id' => 214),
         array('serial_id' => 218 ),
         array('serial_id' => 221),
         array('serial_id' => 319) );

$array2 = array_column($array, 'serial_id');

    var_dump($array2);

    ?> 
Adrian Cid Almaguer
  • 7,815
  • 13
  • 41
  • 63
  • Not yet... waiting for array function which does this same functionality. – Akilsree1 Feb 15 '15 at 04:50
  • Your Answer is correct. Is there any possibility in predefined array functions like array_chunk in php to do this???. I tried this code., It worked but I want to use php predefined functions for this purpose. – Akilsree1 Feb 15 '15 at 05:41
  • Yup,this is what I want. Thanks a lot :-) – Akilsree1 Feb 15 '15 at 05:56