Question

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'),
);
Was it helpful?

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top