0

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'),
);
Jeton R.
  • 385
  • 9
  • 23
  • And wouldn't [`array_flip`](http://php.net/array_flip) suffice? Use a [`foreach`](http://php.net/foreach) to create subarrays. – mario Dec 24 '13 at 03:32

1 Answers1

4
$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

zerkms
  • 249,484
  • 69
  • 436
  • 539