-3

How can I make this array :

Array
(
    [Qualifications] => Array
        (
            [name] => Array
                (
                    [0] => 1
                    [1] => 2
                )

            [description] => Array
                (
                    [0] => 1
                    [1] => 2
                )
)

to look like this array ?

Array
(
   [Qualifications] => Array
        (
            Array [0] =>
                (
                    [name]=> 1
                    [description] => 1
                )

            Array [1]
                (
                    [name] => 2
                    [descrition] => 2
                )
       )
)

It was generated via form fields with jquery, then sent back to my server.

1 Answers1

2

I would do something like this :

/**
 * @param array $bar bar is the qualification array containing (0=>'name' => array(), description => array()
 * @return array
 */
function foo(array $bar = array()){
    $finalArray = array();

    foreach($bar as $key => $value){
        foreach($value as $innerKey => $innerValue){
             $finalArray[$innerKey][$key] = $innerValue;
        }
    }
    return $finalArray;
}

So you pass the inner array (what is in qualification), all you have to do is to put it back in qualification at then end.

EDIT : Without function :

$baseArray = array(Qualifications => array('name' => array(1,2), 'description' => array(1,2)));    

$bar = $baseArray['Qualifications'];

$transformedArray = array();
foreach($bar as $key => $value){
        foreach($value as $innerKey => $innerValue){
             $transformedArray [$innerKey][$key] = $innerValue;
        }
    }
$theArrayYouWant = array('Qualification' => $transformedArray);
Hugo Dozois
  • 8,147
  • 12
  • 54
  • 58