j'ai un problème avec l'utilisation des Arrays, ce qui me pose souci c'est bien évidement le fait que les clés ne sont pas régénérées.
Exemple :
$tab = Array(
0 => 1,
1 => 2,
2 => 3,
3 => 4
);
unset($tab[2]);
Ceci me donnera l'Array suivant :
Code : Tout sélectionner
Array(
0 => 1,
1 => 2,
3 => 4
)J'ai des enregistrements qui sont en relations d'une cas à une autre du tableau, c'est en fait l'implémentation d'un Arbre (je suis bien au courant de la class de la STL mais elle ne pourra pas s'étendre pour ce que je veux par la suite - structures d'arbres de Fibonacci, B-Arbre et 2-3-4 par exemple) auquel je pose la contrainte suivante :
Sauf qu'à chaque fois que je vais supprimer un élément mon calcul sera caduc du fait de la clé manquante. L'ordre dans le tableau restera néanmoins correct (ce qui m'évite un rééquilibrage en plus).Fils Droit = (index * 2) +1
Fils Gauche = (index * 2) + 2
J'ai bien pensé à refaire les clés mais c'est assez lourd comme calcul (même si en terme de code cela tient en deux lignes)...
private function resetKeys(){
$keys = array_keys(array_fill(0,$this->count(),0));
$this->values = array_combine($keys, $this->values);
}
J'ai donc cherché tout un tas de solutions pour me dépatouiller avec mes clés.On peut aussi re-parcourir l'Array à chaque fois en comptant et en associant à chaque noeud une valeur position (donc suppression de valeur = modifier toutes les positions)...
Mais autant dire que ce n'est pas tiptop...
Quelqu'un aurait-il une idée de génie ?