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 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. 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']; } 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 ........ ) 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 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 ) */ 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! 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'))); Link to comment Share on other sites More sharing options...
ludo1960 Posted May 14, 2019 Author Share Posted May 14, 2019 oops posted in wrong place, sorrry! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.