0

I'm not even sure if we called transform, but, let's say we have an array like this:

A)

Array
(
    [id] => 532b436477936
    [name] => Record #1
    [created] => 20-03-2014
    [regions] => Array
    (
        [0] => Array
        (
            [id] => 532b3fcbf2353
            [name] => Region #2
            [created_at] => 1395343322
        )
        [1] => Array
        (
            [id] => 532b3fcbf2354
            [name] => Region #3
            [created_at] => 1395343323
        )
    )
)

And we wish to transform it like this:

B)

Array
(
    [0] => Array
    (
        [id] => 532b436477936
        [name] => Record #1
        [created] => 20-03-2014                
        [regions.id] => 532b3fcbf2353
        [regions.name] => Region #2
        [regions.created_at] => 1395343322
    )
    [1] => Array
    (
        [id] => 532b436477936
        [name] => Record #1
        [created] => 20-03-2014    
        [regions.id] => 532b3fcbf2354
        [regions.name] => Region #3
        [regions.created_at] => 1395343323
    )
)

Can I have some help with the code please?

$actual = array(
            'id' => '532b436477936',
            'name' => 'Record #1',
            'created' => '20-03-2014',
            'regions' => array(
                            array('id' => '532b3fcbf2353', 'name' => 'Region #2'), 
                            array('id' => '532b3fcbf2354', 'name' => 'Region #3')
                        )

        );

var_dump($actual);

$desired = array(
            array(
                'id' => '532b436477936',
                'name' => 'Record #1',
                'created' => '20-03-2014',
                'regions.id' => '532b3fcbf2353',
                'regions.name' => 'Region #2',              
                ),
            array(
                'id' => '532b436477936',
                'name' => 'Record #1',
                'created' => '20-03-2014',
                'regions.id' => '532b3fcbf2354',
                'regions.name' => 'Region #3',  
            )           
);

var_dump($desired);

Can I have some lights on were to look at in order to transform A, into B?

MEM
  • 30,529
  • 42
  • 121
  • 191

3 Answers3

0
$desired = array();
foreach($actual['regions'] as $region)
  {
    $desired[] = array(
            'id' => '532b436477936',
            'name' => 'Record #1',
            'created' => '20-03-2014',
            'region.id' => $region['id'],
            'region.name' => $region['name']);
  } 
imnancysun
  • 612
  • 8
  • 14
0
$actual = array(
        'id' => '532b436477936',
        'name' => 'Record #1',
        'created' => '20-03-2014',
        'regions' => array(
                        array('id' => '532b3fcbf2353', 'name' => 'Region #2'), 
                        array('id' => '532b3fcbf2354', 'name' => 'Region #3')
                    )

    );


$desired = array();
foreach($actual as $actual_dummy => $a)
{
    foreach($a['regions'] as $Region_dummy => $r)
    {
        $desired[]=array("id" => $a['id'], 
                        "name" => $a['name'], 
                        "created" => $a['created'], 
                        "regions.id" => $r['id'], 
                        "regions.name" => $r['name']);
    }
}
mech
  • 617
  • 6
  • 16
0

Try this:

$desired = array();
$basic = $actual;
unset($basic['regions']);
foreach($actual['regions'] as $key=>$val){
    foreach($val as $key2=>$val2) {
        $basic["$key.$key2"] = $val2;
    }
    $desired[] = $basic;
}
harrrrrrry
  • 13,643
  • 2
  • 23
  • 28