Jump to content

Transform array


ludo1960
 Share

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

This thread is more than a year old.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • 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.