for ($i=1; $i<count($tb); $i++)
{
$request = mysql_query('SELECT COUNT(*) FROM '.$tb[$i]);
$rows = mysql_fetch_row($request);
mysql_free_result($request);
$rowsTotal["$tb[$i]"] = $rows[0];
}
That will give you the ammount of rows for each individual array. It's much more effecient to do the query for the count, rather than query everything. $rowsTotal contains every table's rows, the key is the table name. The for loop is also dynamic so that if you add any to the array it will compensate automatically.
It's not really all that different, and you still have to run it through a loop. It's also more confusing to the newbs and just harder to read in general, that's why I didn't do something like that.