Search code examples
phparraysmultidimensional-arraytransposeassociative-array

Transpose an associative array with indexed rows


I am getting this array when form is submitted

array
  'item' => 
    array
      0 => string 'Salt'
      1 => string 'Pepper'
  'quantity' => 
    array (size=2)
      0 => string '2 spoon'
      1 => string '5'

and now want to rearrange above array, so it should look like

array
  '0' => 
    array
      'item' => string 'Salt'
      'quantity' => string '2 spoon'
  '1' => 
    array
      'item' => string 'Pepper'
      'quantity' => string '5'

Solution

  • Try this

    $array = array(
        'item' =>
        array(
            0 => 'Salt',
            1 => 'Pepper'),
        'quantity' =>
        array(
            0 => '2 spoon',
            1 => '5')
    );
    $new_array = array();
    foreach ($array['item'] as $key => $value) {
        $new_array[$key]["item"] = $value;
        $new_array[$key]["quantity"] = $array['quantity'][$key];
    }
    echo "<pre>";
    var_dump($new_array);