Publié le 06/12/2010
Auteur Fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Trouver la position d'un element 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.

Chercher un string dans un tableau

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';
}
?>

L'article est l'illustration du questionnement sur la recherche d'un string dans un array. L'evalutation comprend la fonction inclus dans PHP array_search et une méthode à la mano ou l'on parcourt les tableaux.
En conclusion, il semble que les 2 méthodes se valent, les données étant dans la mémoire la recherche d'un string est quasiment instantané.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - script
Mise a jour
06/12/2010
Visualisation
vu 4391 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par taoufik dans CMS

merci cest un bon logiciel

Publié par Fobec dans CMS

Le code source de l'exemple se trouve dans la pièce jointe (Fiche de l'article -> Boutton Telecharger)

Publié par fobec dans logiciel

MAJ: migration vers GoogleMap V3 de la carte

Publié par Djrac dans tuto

Bjr.
J'ai essaye ce code mais en cliquant sur f5 il me donne un autre temps d'execution malgre qu'il s'agit du meme page PHP. Je comprends pas ou il est le probleme.
Merci de m...

Publié par Alpcom dans java

Salut , juste signaler une petite faute de frappe dans mouseDragged
ce n'est pas int y = p.y - newPos.x;
int y = p.y - newPos.y; !! des comportements curieux apparaissaient sinon merci beaucoup...