Maison >développement back-end >tutoriel php >Comment trouver efficacement un objet par son ID dans un tableau d'objets ?

Comment trouver efficacement un objet par son ID dans un tableau d'objets ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 05:43:09481parcourir

How to Efficiently Find an Object by its ID in an Array of Objects?

Recherche d'un objet par propriété dans un tableau d'objets

Étant donné un tableau d'objets où chaque objet possède une propriété "ID", nous devez identifier et récupérer l'objet qui correspond à une valeur spécifique pour la propriété ID. Considérons un tableau nommé $array avec des objets ayant les propriétés "ID" et "name".

Pour aborder ce problème, il existe deux stratégies courantes :

1. Itération du tableau :

Cela implique de parcourir chaque objet du tableau et de vérifier si sa propriété "ID" correspond à la valeur souhaitée. Cette approche est simple mais peut s'avérer inefficace pour les grands tableaux.

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

2. Création de hashmap :

Nous pouvons créer une hashmap qui utilise la propriété "ID" comme clés et les objets comme valeurs. Cela nous permet d'accéder directement à l'objet souhaité en fonction de son ID.

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

$item = $hashmap[$v];

Si les performances sont un problème, l'approche de création de hashmap est généralement préférée pour les grands tableaux. Cependant, pour les petits tableaux, la simplicité de l'itération du tableau peut être plus adaptée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn