Search code examples
phparray-map

Modify array php using array_map


How to modify the following array using array map. So far I couldn't achieve the wanted results so here is my question:

Convert this:

Array
(
    [Open+Sans:300,300italic,regular,italic,600,600italic,700,700italic,800,800italic] => Open Sans
    [Roboto:100,100italic,300,300italic,regular,italic,500,500italic,700,700italic,900,900italic] => Roboto
    [Oswald:300,regular,700] => Oswald
)

into

Array
(
  array('label' => 'Open Sans','value' => 'Open+Sans:300,300italic,regular,italic,600,600italic,700,700italic,800,800italic'),
  array('label' => 'Roboto','value' => 'Roboto:100,100italic,300,300italic,regular,italic,500,500italic,700,700italic,900,900italic'),
  array('label' => 'Oswald','value' => 'Oswald:300,regular,700'),
);

Solution

  • $data = array(
        'foo' => 'bar',
        'baz' => 'bla',
    );
    
    $result = array_map(
        function($key, $value) {
            return array(
                'label' => $key,
                'value' => $value,
            );
        },
        array_keys($data),
        array_values($data)
    );
    
    var_dump($result);
    

    Online demo: http://ideone.com/95DCuf