Oui, mettez-le dans la boucle :
$array[ $row['cat_title'] ][ $row['sub_cat_id'] ] = $row['sub_cat_title'];
Mais, $array[$row['cat_title']]
n'est peut-être pas encore défini, vous devez donc ajouter cette vérification au préalable :
if( !isset( $array[$row['cat_title']])) {
$array[$row['cat_title']] = array();
}
Votre code d'origine n'a pas besoin de cette vérification depuis $array[]
ne générera aucun avis/avertissement, mais lorsque vous essayez de définir une clé spécifique, cela générera un avis/avertissement si la variable n'est pas déjà déclarée en tant que tableau.