Trouver la position d'un élement dans un array

La class Array_IndexOf illustre la recherche d'un string dans un tableau. Pour l'exemple, deux méthodes sont utilisées pour trouver la position du prénom Antoine pour la liste suivante ("Pierre", "Paul", "Jacques", "Leon", "Antoine", "Marcel").
- fonction arraySearch: encapsulation de la fonction PHP array_search,
- fonction arrayInLoop: boucle sur chaque élément du tableau pour trouver les string identiques.

Avec microtime(), la vitesse de recherche a été comparée sur une boucle de 1000 passages. Les résultats montrent que les performances des 2 méthodes sont identiques.
<?php

class Array_IndexOf {
   
    /**
     * Trouver la position d'un element avec array_search
     * @param array $haystack
     * @param string $value
     * @return int la position de l'élement ou -1 si non trouvé
     */
    public static function arraySearch(array $haystack, $value) {
        $pos=array_search($value, $haystack);
        if ($pos !== false) {
            return $pos;
        } else {
            return -1;
        }
    }
   
    /**
     * Trouver la position d'un element avec une boucle
     * @param array $haystack
     * @param string $value
     * @return int la position de l'élement ou -1 si non trouvé
     */
    public static function arrayInLoop(array $haystack, $value) {
        $count=count($haystack)-1;
       
        for ($i=0; $i<$count;$i++)
            if ($haystack[$i]==$value) {
                return $i ;
            }
        return -1;
    }
}

/**
 * Exemple
 */
$values=array("Pierre""Paul""Jacques""Leon""Antoine""Marcel");
$pos=Array_IndexOf::arrayInLoop($values, 'Antoine');
if ($pos!=-1) {
    echo 'La position de Antoine dans le tableau est: '.$pos;
} else {
    echo 'Antoine non trouve dans le tableau';   
}
?>

Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour06/12/2010
VisualisationVu 763 fois
PublicInternaute
CategorieWeb - PHP - String
Auteur de l'article
fobec fobec
connecté le 09/05/2012
36 ans - France Nord-Est
44 articles dans la section
Contacter l'auteur
Partager l'article