Bonjour à tous!
Voilà, je cherche un moyen de faire un traitement le plus optimisé possible.
En gros typiquement j'ai des données de type objets contenues dans une matrice (array d'arrays), et j'y accède de deux manières, soit par le type, soit par l'id. Donc deux méthodes getID(), et getType(). Etant donné que j'utilise plus souvent le getType() j'ai décidé de les classer de cette manière, comme j'ai 8 types différents, mon array principal contient les clés des types qui pointent vers les arrays contenant les données.
J'aimerais à un moment X pouvoir ajouter ou retirer une donnée de cette matrice, et pour retirer cette donnée je passe par l'ID, mais j'ai besoin d'avoir cette donnée sous la main un moment pour traitement avant de la supprimer complètement, donc pour essayer de résumer parce que je m'étale, j'ai fait une fonction qui me récupère la donnée dans le tableau par référence pour pouvoir ensuite traiter cette donnée, et faire un unset() qui me supprime la donnée directement dans le tableau sans avoir à reparcourir.
Voilà donc ma fonction, mais à la sortie de celle ci quand après traitement je fais unset($item) avec $item = extractItem($monarray,$monid), ça ne marche pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public static function &extractItem($items,$id){ for ($type = 0 ; $type < 9 ; $type++) if ($items[$type] != null) foreach ($items[$type] as &$item) if ($item->getID() == $id) return $item; }
Je ne sais pas si vous voyez le problème où si vous avez une autre solution à me conseiller parce que je sais que le passage par ref. est pas forcément idéal, et pour tout dire y'a pas vraiment de bonne doc sur le sujet (en tout cas que je connaisse).
Partager