Maison  >  Article  >  développement back-end  >  Parlons de plusieurs méthodes différentes de traversée de tableaux PHP

Parlons de plusieurs méthodes différentes de traversée de tableaux PHP

PHPz
PHPzoriginal
2023-04-27 09:04:28425parcourir

Avec le développement et l'application continus de la technologie Internet, le développement Web est devenu de plus en plus populaire et important. En tant que langage de développement Web populaire, PHP est largement utilisé pour créer des sites Web et des applications Web dynamiques.

Dans le développement PHP, un tableau est une structure de données de base qui est souvent utilisée pour stocker et exploiter de grandes quantités de données. La traversée de tableaux est l’une des opérations les plus courantes en développement. Cet article présentera plusieurs méthodes différentes de traversée de tableaux PHP et comparera leurs taux.

  1. for loop traversal

La boucle for est l'une des méthodes de traversée les plus basiques et les plus courantes. Il parcourt l'ensemble du tableau en incrémentant ou en décrémentant la variable de boucle, puis obtient la valeur de chaque élément via l'indice du tableau.

Voici un exemple montrant comment utiliser une boucle for pour parcourir un tableau :

$array = array('A','B','C','D','E','F','G');
$array_length = count($array);

for ($i = 0; $i < $array_length; $i++) {
    echo $array[$i];
}

Utiliser une boucle for pour parcourir un tableau est l'une des méthodes les plus courantes et les plus simples . Cependant, il est relativement lent, surtout lorsqu’il s’agit de grands tableaux.

  1. foreach parcours de boucle

La boucle foreach est une manière plus élégante de parcourir un tableau, elle peut automatiquement parcourir l'ensemble du tableau, et dans le loop Accédez directement à la valeur de chaque élément.

Ce qui suit est un exemple montrant comment utiliser une boucle foreach pour parcourir un tableau :

$array = array(&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;);

foreach ($array as $value) {
    echo $value;
}

Utiliser une boucle foreach pour parcourir un tableau est plus élégant et concis que d'utiliser un pour la boucle. De plus, c'est généralement plus rapide qu'une boucle for, surtout lorsqu'il s'agit de grands tableaux.

  1. array_walk function traversal

array_walk est une fonction fournie par PHP spécifiquement pour parcourir des tableaux. Il accepte deux paramètres : le tableau sur lequel parcourir et une fonction de rappel. Les valeurs des éléments du tableau peuvent être modifiées dans la fonction de rappel.

Ce qui suit est un exemple montrant comment utiliser la fonction array_walk pour parcourir un tableau :

$array = array(&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;);

function print_item($value, $key) {
    echo $value;
}

array_walk($array, &#39;print_item&#39;);

L'utilisation de la fonction array_walk pour parcourir un tableau peut rendre le code plus efficace et plus concis . Cependant, il est relativement lent et la conception de la fonction de rappel peut entraîner un code moins lisible.

Comparez la vitesse de différentes méthodes

Afin de comparer la vitesse de ces différentes méthodes de traversée de tableaux PHP, nous pouvons utiliser la fonction microtime de PHP pour tester leur temps d'exécution. La fonction microtime renvoie l'horodatage Unix actuel et les microsecondes.

Voici un exemple montrant comment tester la cadence et le temps d'exécution de différentes méthodes :

$loop = 100000;
$array = array_fill(0, 1000, &#39;A&#39;);

// for loop
$start_time = microtime(true);
for ($i = 0; $i < $loop; $i++) {
    for ($j = 0; $j < count($array); $j++) {
        $value = $array[$j];
    }
}
$end_time = microtime(true);
$for_time = $end_time - $start_time;

// foreach
$start_time = microtime(true);
for ($i = 0; $i < $loop; $i++) {
    foreach ($array as $value) {
        $value = $value;
    }
}
$end_time = microtime(true);
$foreach_time = $end_time - $start_time;

// array_walk
function print_item($value, $key) {
    $value = $value;
}

$start_time = microtime(true);
for ($i = 0; $i < $loop; $i++) {
    array_walk($array, &#39;print_item&#39;);
}
$end_time = microtime(true);
$array_walk_time = $end_time - $start_time;

echo "For loop: " . $for_time . "<br>";
echo "Foreach: " . $foreach_time . "<br>";
echo "Array_walk: " . $array_walk_time . "<br>";

Dans ce test, nous avons rempli un tableau de 1000 éléments et répétons chaque méthode 100 000 fois. Ensuite, nous avons calculé le temps d’exécution de chaque méthode à l’aide de la fonction microtime.

Les résultats du test sont les suivants :

For loop: 0.46466302871704
Foreach: 0.27876091003418
Array_walk: 0.66399812698364

D'après les résultats du test, utiliser la boucle foreach pour parcourir le tableau est la méthode la plus rapide, qui est plus rapide que l'utilisation de la boucle for et la fonction array_walk pour parcourir le tableau respectivement 40 % et 138 %. Par conséquent, dans le développement PHP, utiliser une boucle foreach pour parcourir le tableau est le meilleur choix.

Résumé

Dans le développement PHP, les opérations de traversée de tableaux sont très courantes et importantes. Cet article présente trois méthodes différentes de parcours de tableaux en PHP et compare leurs taux. Les résultats du test montrent que l'utilisation de la boucle foreach pour parcourir le tableau est la méthode la plus rapide, qui est respectivement 40 % et 138 % plus rapide que la boucle for et la fonction array_walk. Par conséquent, dans le développement réel, nous devrions utiliser la boucle foreach pour parcourir le tableau autant que possible afin d'améliorer l'efficacité d'exécution du code.

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