- 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é.