Primero: feliz navidad
Ahora, lo que nos ocupa:
en PHP no es necesario inicializar un vector con una capacidad determinada, la capacidad la implementa el lenguaje dinámicamente, esto es, no tienes que preocuparte porque algo no quepa en tu array. Cabe y punto, xD.
Para hacer un vector en tiempo de ejecución, $a = array() y ya está.
Antes de hacer $a[] = algo, siempre debes inicializarlo con $a = array().
De no hacerlo, el compilador muestra una alerta de tipo Notice (no es importante, pero es un "error").
Para crear un array puedes hacerlo como con cualquier otro tipo de datos.
Incluso puedes hacer un array multidimensional, así:
Código PHP:
$a = array();
for($i = 0; $i < 10; $i++) {
$a[$i] = array();
for($j = 0; $j < 10; $j++) {
$a[$i][$j] = valor_obtenido_dinamicamente($i, $j); // Es una función de ejemplo ^^. Puede servir para sacar valores de una BBDD.
}
}
Espero haberte aclarado algo más