"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je trouver efficacement une entrée de tableau en fonction de la propriété ID d'un objet ?

Comment puis-je trouver efficacement une entrée de tableau en fonction de la propriété ID d'un objet ?

Publié le 2024-12-23
Parcourir:503

How Can I Efficiently Find an Array Entry Based on an Object\'s ID Property?

Identification des entrées de tableau en fonction des propriétés de l'objet

Considérez un tableau d'objets, chacun possédant une propriété « ID ». Pour localiser une entrée correspondant à une valeur "ID" spécifique stockée dans la variable "$v", nous explorons plusieurs approches :

1. Recherche itérative

Cela implique une itération séquentielle dans le tableau, en comparant la propriété "ID" de chaque objet avec la valeur souhaitée "$v."

$item = null;
foreach($array as $struct) {
    if ($v == $struct->ID) {
        $item = $struct;
        break;
    }
}

Cette méthode convient aux recherches ponctuelles, mais peut devenir inefficace pour les grands ensembles de données.

2. Approche Hashmap

Alternativement, nous pouvons construire une hashmap en utilisant un autre tableau associatif.

$HashMap = [];
foreach ($array as $struct) {
    $HashMap[$struct->ID] = $struct;
}

$item = $HashMap[$v];

Cette approche permet un accès direct à l'entrée souhaitée en utilisant la valeur "ID" comme clé, mais elle nécessite une surcharge de mémoire supplémentaire.

Par conséquent, le choix de l'approche dépend de la fréquence et de l'ampleur des opérations de recherche.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3