If you are asking about woocommerce, this function is located in woocommerce/templates/loop/results-count.php
Here’s the full code, you will get the logic if you go through it.
$paged = max( 1, $wp_query->get( 'paged' ) );
$per_page = $wp_query->get( 'posts_per_page' );
$total = $wp_query->found_posts;
$first = ( $per_page * $paged ) - $per_page + 1;
$last = min( $total, $wp_query->get( 'posts_per_page' ) * $paged );
if ( 1 == $total ) {
_e( 'Showing the single result', 'woocommerce' );
} elseif ( $total <= $per_page || -1 == $per_page ) {
printf( __( 'Showing all %d results', 'woocommerce' ), $total );
} else {
printf( _x( 'Showing %1$d–%2$d of %3$d results', '%1$d = first, %2$d = last, %3$d = total', 'woocommerce' ), $first, $last, $total );
}
It’s called on archive template page through the following function:
do_action('woocommerce_before_shop_loop');
Or you can build your own. Getting programmatically the number of posts on archive page can be called through:
$display_count = get_option('posts_per_page');
and you can figure the rest.