List one post only from each subcategory using get_posts?

I’m not sure this is the best way but it works:

//First get all child categories if 'big_corporates'
$categories = $args = array(
    'parent'                   => $big_corporates_ID,
    'orderby'                  => 'name',
    'order'                    => 'ASC',
    'hide_empty'               => 1,
    'taxonomy'                 => 'projects_category'
    );

//then loop over them and get the first post of each:
echo '<ul>';
foreach ($categories as $category) {
    $projects = get_posts(array('numberposts' => 1, 'post_type' => 'projects', 'projects_category' => $category->slug));
    foreach( $projects as $project ) {
        setup_postdata($project);
        ?><li><?php echo $category->name; ?> - <a href="https://wordpress.stackexchange.com/questions/22711/<?php the_permalink(); ?>"><?php the_title(); ?></a></li><?php
    }
}
echo '</ul>';