Jump to content

Transform array


ludo1960

Recommended Posts

Hi guys,

if I have an array like so:

Array
(
    [articles] => Array
        (
            [href] => http://admin.contenta.com/api/articles
        )

    [blocks] => Array
        (
            [href] => http://admin.contenta.com/api/blocks
        )

    [categories] => Array
        (
            [href] => http://admin.contenta.com/api/categories
        )
.....
}

How can I transform it to assoiative array ie 'articles' => 'http://admin.contenta.com/api/articles' etc?

Thanks

Link to comment
Share on other sites

Using

foreach ($myarray as $k => $v) {
    $new[$k] = $v['href']; 
}

gives me :

Array
(
    [articles] => Array
        (
            [href] => http://admin.contenta.com/api/articles
        )

    [blocks] => Array
        (
            [href] => http://admin.contenta.com/api/blocks
        )

    [categories] => Array
        (
            [href] => http://admin.contenta.com/api/categories
        )
....

How to change:

    [articles] => Array
        (
            [href] => http://admin.contenta.com/api/articles
        )

to

 [articles] => http://admin.contenta.com/api/articles

 

Link to comment
Share on other sites

Are you sure you are outputting the new array?

$myarray = [
               'articles' => [ 'href' => 'http://admin.contenta.com/api/articles'],
               'blocks' => [ 'href' => 'http://admin.contenta.com/api/blocks'],
               'categories' => [ 'href' => 'http://admin.contenta.com/api/categories']
           ];

foreach ($myarray as $k => $v) {
    $new[$k] = $v['href'];
}

echo '<pre>', print_r($new, 1), '</pre>';

/*** GIVES ME ***

    Array
    (
        [articles] => http://admin.contenta.com/api/articles
        [blocks] => http://admin.contenta.com/api/blocks
        [categories] => http://admin.contenta.com/api/categories
    )
              
*/

 

Link to comment
Share on other sites

Silly typo at my end, apologies:

foreach ($myarray as $k => $v) {
    $new[$k] = $v['href']; 
}

echo "<pre>",  print_r($new), "</pre>";

gives me :

Array
(
    [articles] => http://admin.contenta.com/api/articles
    [blocks] => http://admin.contenta.com/api/blocks
    [categories] => http://admin.contenta.com/api/categories
.........

perfect as usual Barand, thanks!

Link to comment
Share on other sites

just another variant:

 

$myarray = [
               'articles' => [ 'href' => 'http://admin.contenta.com/api/articles'],
               'blocks' => [ 'href' => 'http://admin.contenta.com/api/blocks'],
               'categories' => [ 'href' => 'http://admin.contenta.com/api/categories']
           ];

print_r(array_combine(array_keys($myarray), array_column($myarray, 'href')));

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.