Como podria declarar el array para que acepte mas de 1?
Declarar arrays multidimensionales consiste en "meter un array dentro de otro array", a modo general. Es decir, cada posición de un array correspondería a otro array y por eso para referirse a un elemento concreto habría tantos indices como arrays anidados.
Existen diferentes maneras de hacerlo como te indica mastermind, hay muchas formas de declarar un array. Puedes declarar un array vacio, es decir puedes inicializarlo o no.
$mi_array_vacio = array();
$mi_array = array (dato1,dato2,dato3...);
Cuando usas arrays multidimensionales normalmente se hace uso del método de asociación o asociativo para declararlos, ya que suelen ser casos en los que vas a querer referirte a "sub-arrays" concretos y es digamos una buena manera de saber a que te estas refiriendo en vez de usar indices numéricos. Me explico.
El método asociativo consiste en usar como indices palabras o algo que asocie a ese indice lo que contiene. Es la forma mas "legible" digamos de utilizarlos. Por ejemplo para un array unidimensional:
<?php
$datos = array(
'edad' => 25,
'nombre' => 'Samuel',
'ID' => 4536323,
);
var_dump($datos);
echo "<hr>";
?>
Si lo que quieres es simplemente un array multidimensional:
$array_1 = array();
$array_2 = array();
$mi_array_de_arrays = array($array_1, $array_2);
o
$mi_array_de_arrays = array(array(), array());
Y te referiras a los elementos como:
$mi_array_de_arrays [a][b]
donde a y b son los indices de cada array que tu quieras. Por ejemplo
<?php
$array_1 = array(1,2,3);
$array_2 = array(4,5,6);
$mi_array_de_arrays = array($array_1, $array_2);
echo $mi_array_de_arrays [0,0] . "hace referencia al 1";
?>
Por ultimo te dejo un codigo de cómo poder usar ambos conceptos para crear arrays multidimensionales de modo asociativo así como el uso de la función count(); para luego poder recorrer arrays de los que desconoces el tamaño. Puedes hacer copia y pega de este codigo y observas su funcionamiento.
<?php
$talla = array ("S","M","L","XL");
$color = array ("azul","rojo","verde","blanco","negro");
$camiseta = array();
$camiseta = array (
'talla' => $talla,
'color' => $color,
);
var_dump($camiseta);
echo 'count($talla) result = ' . count($talla) . '<br />';
echo 'count($color) result = ' . count($color) . '<br />';
echo 'count($camiseta) result = ' . count($camiseta);
echo "<hr>";
?>
En referencia a tu código si almacenas un único tipo de dato y lo que quieres es realizar la ordenación de un array existen funciones para ello.
Como dato, de forma interna los algoritmos de ordenación son un tema muy interesante en cuanto a los recursos que utilizan ya que a simple vista parece "una chorrada" pero cuando profundizas no lo es para nada y por ello han ido surgiendo métodos que recurren a las matemáticas y la recursividad y resuelven este tipo de algoritmos. El mas simple es comparar cada valor con el resto e ir intercambiando uno con otro en función de si es mayor o menor. Este método en comparación a otros es costoso en recursos y reiteraciones.
No obstante lo que te interesa, si lo que necesitas es ordenar una tabla, es conocer funciones tipo asort(); o arsort(); que ordenan valores númericos por ejemplo de menor a mayor y de mayor a menor respectivamente. O funciones tipo array_multisort(); ksort(); krsort(); que tienen en cuenta si utilizas el método asociativo.
Hay cantidad de funciones para ordenar y unas van bien para unos casos y otras para otros, puedes visitar:
http://php.net/manual/es/array.sorting.phpSaludos