Hola, para hacer ese ordenamiento te recomiendo usar la funcion array_multisort, al principio puede ser un poco confusa pero luego que la usas varias veces es genial. Ademas, es tan poderosa casi como el ORDER BY de SQL.
Ejemplo:
Código PHP:
$datos[] = array(0, 'house', 'casa');
$datos[] = array(1, 'acero', 'plomo');
foreach ($datos as $key => $fila) {
$col1[$key] = $fila[1]; // columna de house
$col2[$key] = $fila[2]; //columna de casa
}
//ordenamos ascendente por la columna house
array_multisort($col1, SORT_ASC, $datos);
print_r($datos);
En el ejemplo anterior tenemos un array como el que tu estás manejando, la idea es poner las columnas que te interesan ordenar en arrays independientes.
Dentro del foreach ponemos en $col1 los valores de la columna house, es decir, "house" y "acero"; luego a la funcion array_multisort le pasamos la columna por la que queremos ordenar (en el ejemplo es house), si es ascendente o descendente y finalmente el array original donde podemos ver el resultado.
Ahora tenemos el array $datos ordenado por la columna house.
espero que te sirva, saludos, Juan.