Concatenate arrays from foreach loop into single variable of nested arrays

admin

Administrator
Staff member
I'm trying to get a list of different image sizes in Wordpress. I think this is more of a php question though so I'm asking it here instead of on the wordpress forum.

Here is my code:

Code:
function ajax_get_latest_posts(){   
   $attachments = get_children(array('post_parent' => $post->ID,
                    'post_status' => 'inherit',
                    'post_type' => 'attachment',
                    'post_mime_type' => 'image',
                    'order' => 'ASC',
                    'orderby' => 'menu_order ID'));

   foreach($attachments as $att_id => $attachment) {
      $large_bg_url = wp_get_attachment_image_src($attachment->ID, 'background-large');
      $medium_bg_url = wp_get_attachment_image_src($attachment->ID, 'background-medium');
      $small_bg_url = wp_get_attachment_image_src($attachment->ID, 'background-small');
      $imagesizes .= array('background_large' => $large_bg_url[0], 'background_medium' => $medium_bg_url[0], 'background_small' => $small_bg_url[0]);
   }

   $allimagesizes = array($imagesizes);

   return $allimagesizes;
}

The above code does not work but hopefully shows what I'm trying to achieve. The problem is the concatenation of $imagesizes is not right. Below is the output I actually need to achieve but I cannot seem to figure out how to get this output from the foreach loop.

Code:
$allimagesizes = array(
   array(
      'background_large' => 'http://mydomain.com.au/wp-content/uploads/facade.jpg', 
      'background_medium' => 'http://mydomain.com.au/wp-content/uploads/facade-1366x807.jpg', 
      'background_small' => 'http://mydomain.com.au/wp-content/uploads/facade-1024x605.jpg '
   ),
   array(
      'background_large' => 'http://mydomain.com.au/wp-content/uploads/facade-trees.jpg', 
      'background_medium' => 'http://mydomain.com.au/wp-content/uploads/facade-trees-1366x818.jpg', 
      'background_small' => 'http://mydomain.com.au/wp-content/uploads/facade-trees-1024x613.jpg '
   )    
 );