Se usassi array_filter, mi troverei come prima chiave dei numeri non ordinati, perchè mancherebbero tutti i numeri per i quali il parent_id di $aMenuApp è diverso da 2.

Cerco di fare un esempio, così si capisce meglio...
Mettiamo che ho:
Codice PHP:
$aMenuApp[0][parent_id]=0;
$aMenuApp[0][title]="Primo";

$aMenuApp[1][parent_id]=2;
$aMenuApp[1][title]="Secondo";

$aMenuApp[2][parent_id]=1;
$aMenuApp[2][title]="Terzo";

$aMenuApp[3][parent_id]=2;
$aMenuApp[3][title]="Quarto"
Vorrei ottenere un altro array così formato:
Codice PHP:
$aMainMenu[0][parent_id]=2;
$aMainMenu[0][title]="Secondo";

$aMainMenu[1][parent_id]=2;
$aMainMenu[1][title]="Quarto"

Capito?
Quello che non capisco è perchè col codice nel primo post, quando lo eseguo mi stampa sempre:
E il primo c'è...
E invece il secondo no!

Praticamente non riesce a riempire l'array $aMainMenu... perchè???