ludo1960 Posted May 13, 2019 Share Posted May 13, 2019 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 Quote Link to comment Share on other sites More sharing options...
gw1500se Posted May 13, 2019 Share Posted May 13, 2019 It already is an associative array. It is not clear from the link provided what you are specifically asking. Quote Link to comment Share on other sites More sharing options...
Barand Posted May 13, 2019 Share Posted May 13, 2019 Do you mean foreach ($myarray as $k => $v) { $new[$k] = $v['href']; } Quote Link to comment Share on other sites More sharing options...
ludo1960 Posted May 13, 2019 Author Share Posted May 13, 2019 Not sure what the right words are, but an array like so: Array ( 'articles' => 'http://admin.contenta.com/api/articles' , 'blocks' => 'http://admin.contenta.com/api/blocks', 'categories' => 'http://admin.contenta.com/api/categories ........ ) Quote Link to comment Share on other sites More sharing options...
ludo1960 Posted May 13, 2019 Author Share Posted May 13, 2019 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 Quote Link to comment Share on other sites More sharing options...
Barand Posted May 13, 2019 Share Posted May 13, 2019 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 ) */ Quote Link to comment Share on other sites More sharing options...
ludo1960 Posted May 13, 2019 Author Share Posted May 13, 2019 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! Quote Link to comment Share on other sites More sharing options...
chhorn Posted May 13, 2019 Share Posted May 13, 2019 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'))); Quote Link to comment Share on other sites More sharing options...
ludo1960 Posted May 14, 2019 Author Share Posted May 14, 2019 (edited) oops posted in wrong place, sorrry! Edited May 14, 2019 by ludo1960 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.