J'ai un problème de performance sur un traitement sur mes tableaux.

Je m'explique.

J'ai un tableau comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$tab[0] = 'a';
$tab[1] = 'b';
$tab[2] = 'c';
J'enlève ensuite l'élément 'b' :
Je me retrouve avec le tableau suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$tab[0] -> 'a'
$tab[2] -> 'c'
Je cherche maintenant à avoir ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$tab[0] -> 'a'
$tab[1] -> 'c'
Ne me demandez pas pourquoi j'ai besoin de remettre mes indices comme ceci, c'est important, c'est tout.
Pour cela, j'ai trouvé 2 solutions : array_merge ou sort.
Cependant, les 2 possèdent un problème majeur.
Array_merge est plutôt rapide, mais prend beaucoup de mémoire, et comme j'ai une grosse boucle avec de très gros tableaux, je dépasse vite les 100Mo d'occupation en mémoire vive.
En ce qui concerne le sort, il se débrouille mieux en ce qui concerne la mémoire, mais il est beaucoup plus lent (normal, quicksort oblige).

Je voudrais savoir s'il n'existe pas de fonction plus simple pour retrier les index de mon tableau de la même façon.

Merci!