Maison  >  Article  >  développement back-end  >  Comment rechercher un tableau en php

Comment rechercher un tableau en php

PHPz
PHPzoriginal
2023-04-20 15:07:181844parcourir

PHP est un langage de programmation côté serveur couramment utilisé qui permet aux développeurs de traiter et d'exploiter facilement divers types de données. L'un des types de données les plus couramment utilisés est celui des tableaux. En PHP, rechercher un tableau est une opération très basique et courante. Voyons ensuite comment rechercher des tableaux en PHP.

1. Introduction à la recherche par tableau en PHP

En PHP, un tableau fait référence à un ensemble d'éléments ordonnés, qui peuvent être stockés sous la forme de paires clé-valeur, où chaque élément a une clé associée et une valeur correspondante. Lorsque vous avez besoin de trouver ces éléments de tableau, vous devez utiliser la recherche de tableau.

La recherche dans un tableau fait référence à la recherche d'une valeur ou d'une clé spécifiée dans un tableau existant pour déterminer si la valeur ou la clé cible existe ou n'existe pas dans le tableau. PHP propose de nombreuses méthodes de recherche de tableaux, notamment la recherche linéaire, la recherche binaire, la recherche récursive, etc.

2. Recherche linéaire de tableaux en PHP

La méthode de recherche la plus simple en PHP est la recherche linéaire, qui est une méthode permettant de trouver la clé ou la valeur cible en parcourant l'ensemble du tableau. L'idée de base de la recherche linéaire est de comparer la valeur cible et la clé une par une en commençant par le premier élément du tableau. Si la valeur ou la clé cible est trouvée, l'index ou la valeur correspondante est renvoyée si la cible ne l'est pas. trouvé après avoir parcouru l'ensemble du tableau, return " false " signifie que la recherche a échoué.

Ce qui suit est un exemple d'implémentation de code :

$arr = array("apple", "orange", "banana", "grape");  
$target = "banana";
for($i=0;$i<count($arr);$i++){
if($arr[$i] == $target){
echo "目标值 " . $target . " 在数组中的索引是 " . $i;
break;
}
}

Dans le code ci-dessus, nous définissons un tableau $arr, puis utilisons une boucle pour parcourir chaque élément du tableau. Lorsque la valeur cible est trouvée, utilisez l'instruction "echo" pour afficher l'index de la valeur cible dans le tableau, puis utilisez l'instruction "break" pour terminer la boucle.

3. Recherche binaire de tableaux en PHP

En PHP, si le tableau est ordonné, vous pouvez utiliser la recherche binaire pour une recherche plus rapide. La recherche binaire est un algorithme de recherche basé sur la comparaison et une application typique de la pensée diviser pour régner.

L'idée de base de la recherche binaire est la suivante : divisez le tableau ordonné en deux parties, recherchez une valeur au milieu du tableau et comparez la cible avec la valeur. Si la cible est plus petite que la valeur, effectuez une recherche récursive dans. la première moitié (côté gauche) ; si si la cible est supérieure à cette valeur, rechercher récursivement dans la seconde moitié (côté droit) ; si la cible est égale à cette valeur, renvoyer l'index ou la valeur correspondante.

Ce qui suit est un exemple d'implémentation de code :

function binary_search($arr,$target){
$low = 0;
$high = count($arr) - 1;
while($low <= $high) {
$middle = intval(($low + $high)/2);
if($arr[$middle] == $target) {
return $middle;
} elseif ($arr[$middle] > $target) {
$high = $middle -1;
} else {
$low = $middle + 1;
}
}
return -1;
}
$arr = array(1,3,5,7,9,11);
$target = 7;
echo "目标值 " . $target . " 在数组中的索引是 " . binary_search($arr,$target);

Dans le code ci-dessus, nous définissons une fonction binaire_search, qui reçoit un tableau ordonné et une valeur cible en tant que paramètres, et renvoie l'index de la valeur cible dans le tableau. Des boucles et des instructions conditionnelles sont utilisées dans la fonction pour implémenter l'algorithme de recherche binaire.

4. Recherche récursive de tableaux en PHP

La recherche récursive est une méthode de recherche simple mais relativement inefficace. Elle parcourt l'ensemble du tableau en appelant récursivement sa propre fonction et trouve la valeur ou la clé cible. L'idée de base de la recherche récursive est la suivante : si le tableau est vide, renvoyez "false" ; sinon, vérifiez si le premier élément du tableau est la valeur ou la clé cible, et si c'est le cas, renvoyez l'index ou la valeur correspondante, sinon, appelez ; sa propre fonction de manière récursive pour traiter les éléments restants du tableau à l'exception du premier élément.

Ce qui suit est un exemple d'implémentation de code :

function search($arr,$target) {
if(empty($arr)){
return false;
}
if($arr[0] == $target){
return 0;
} else {
$index = search(array_slice($arr,1),$target);
if($index === false) {
return false;
} else {
return $index+1;
}
}
}
$arr = array("apple", "orange", "banana", "grape");  
$target = "orange";
echo "目标值 " . $target . " 在数组中的索引是 " . search($arr,$target);

Dans le code ci-dessus, nous définissons une fonction de recherche qui reçoit un tableau et une valeur cible comme paramètres et renvoie l'index de la valeur cible dans le tableau. La fonction utilise un appel récursif à sa propre fonction pour parcourir l'intégralité du tableau et trouver la valeur ou la clé cible.

5. Résumé

Ce qui précède est une introduction à la méthode de recherche de tableaux en PHP. Nous pouvons choisir l'algorithme de recherche approprié en fonction de différents besoins : pour les tableaux non ordonnés, nous pouvons choisir la recherche linéaire ou la recherche récursive pour les tableaux ordonnés, nous pouvons choisir la recherche binaire pour améliorer l'efficacité de la recherche ; Dans le développement réel, il est très important de choisir une méthode en fonction de la situation réelle, et l'impact sur les performances est également très important.

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