I'm gonna guess you're coming from another language (VB?)...but in PHP there is no need to size an array = they are always dynamic. As exaplained in the PHP manual [1], PHP arrays are truely "maps" which just a collection of key-to-value pairs. This way, they function just a like a array, but also a list, stack, hashtable, etc.
In your code, your comments are exactly right. The array() does not allocate an array in the sense you seem to be thinking. All array() does is return a new array with the key-value pairs passed. The following code is equivlant:
$ar_gsize[0] = $arg1 * $arg2
So all you really need to hear is delcare a new var:
var $foo;
You then can start add values whenever you want:
$foo[1] = 324;
$foo['bar'] = "doh";
PHP is smart enough to realize to know it's an array, to grow the array size, and will add the key-value pairs. You can remove key-value pair with unset().
Let me know if this answers your question.
[1] http://www.php.net/manual/en/language.types.array.php