Maison  >  Article  >  développement back-end  >  Apprentissage des tableaux PHP : comparez les éléments du tableau et obtenez les première et deuxième plus grandes valeurs

Apprentissage des tableaux PHP : comparez les éléments du tableau et obtenez les première et deuxième plus grandes valeurs

青灯夜游
青灯夜游original
2021-08-18 12:06:063154parcourir

Dans l'article précédent, nous avons présenté la méthode d'utilisation de l'algorithme à bulles pour trier les éléments du tableau par ordre croissant. Si vous êtes intéressé, vous pouvez cliquer sur le lien pour lire → "Apprentissage des tableaux PHP : Utiliser l'algorithme à bulles pour trier. les éléments par ordre croissant !" 》. Cette fois, nous poursuivons la série d'apprentissage des tableaux PHP et introduisons la méthode de comparaison des éléments du tableau et d'obtention des première et deuxième plus grandes valeurs.

Le thème de cet article est : « Étant donné un ensemble de nombres, calculez ses valeurs maximales et secondes maximales ».

Idée d'implémentation : Utilisez un tableau pour envelopper cet ensemble de nombres, cela implique donc de comparer la taille des éléments du tableau

Définissez deux variables $max et $secMax, utilisé pour stocker la valeur maximale et la deuxième valeur maximale obtenue. Cependant, vous devez d'abord attribuer des valeurs initiales à tout le monde, en leur attribuant le premier élément et le deuxième élément du tableau. Mais assurez-vous que $max est plus grand que $secMax, vous devez donc porter un jugement $max$secMax,用于存放获取到的最大值和第二大值。不过需要先给大家赋初值,将数组第一个元素和第二个元素赋给它们。但要保证$max$secMax大,所以要做一个判断

if ($arr[0] > $arr[1]){//这个if是为了防止出现数组第一个值就是最大值
        $secMax = $arr[1];
    } else if ($arr[0] < $arr[1]){
        $max = $arr[1];
    }

然后使用for循环,不断遍历$arr数组。【不懂的可以阅读文章《PHP循环学习三:如何使用for循环语句遍历数组》】

for ($i = 0;$i< count($arr);$i++){   //循环数组
   //循环体
}

在循环体中,不断将$max$secMax与数组每个值($arr[$i])比较:

  • 如果$arr[$i]$max大,则将$max值赋给$secMax,把$arr[$i]赋给$max

if ($arr[$i] > $max){
    $secMax = $max;
    $max = $arr[$i];
}
function takeNum($arr){
	//定义了两个变量$max和$secMax来存放最大和第二大的数值
    $max = $arr[0];
    $secMax = $arr[0];
    if ($arr[0] > $arr[1]){//这个if是为了防止出现数组第一个值就是最大值
        $secMax = $arr[1];
    } else if ($arr[0] < $arr[1]){
        $max = $arr[1];
    }
    for ($i = 0;$i< count($arr);$i++){//循环数组
        if ($arr[$i] > $max){
            $secMax = $max;
            $max = $arr[$i];
        } else if ($arr[$i] < $max && $arr[$i] > $secMax){
            $secMax = $arr[$i];
        }
    }
    echo "最大值为".$max.",第二大值为".$secMax;
}

Dans le corps de la boucle, comparez continuellement $max, $secMax avec chaque valeur du tableau ($arr[$i] ) Comparaison :

  • Si $arr[$i] est plus grand que $max, puis attribuez la valeur $max à $secMax, attribuez $arr[$i] à $max,


    $arr = array(555,5,1,429,18,21,52,2,52,9,3,);
    takeNum($arr);

    • Et si $arr[$i] est inférieur à $max, mais $arr[$i] est supérieur à $secMax, alors seulement $secMax et $arr[$i] sont des valeurs échangées entre, copiez $arr[$i] dans $secMax.

      if (判断条件) {
          语句块;
      }
      Apprentissage des tableaux PHP : comparez les éléments du tableau et obtenez les première et deuxième plus grandes valeursUne comparaison continue de cette manière peut garantir que $max stocke la valeur maximale du tableau et $secMax stocke la deuxième plus grande valeur du tableau.

      Jetons un coup d'œil au code d'implémentation complet :

      if (判断条件) {
          语句块 1;
      } else {
          语句块 2;
      }

      Testez-le : définissez le tableau suivant, appelez la fonction takeNum($arr) pour voir le résultat

      if (判断条件 1) {
          语句块 1;
      } else if (判断条件 2) {
          语句块 2;
      } else if (判断条件 3) {
          语句块 3;
      }
      ......

      On peut voir que la première plus grande valeur est 555 , et la première La deuxième plus grande valeur est 429 ; voyez si le résultat de sortie est le suivant :

      OK, le résultat de sortie est correct.

      Parlons ensuite des points de connaissances utilisés. Il n'est pas nécessaire d'en dire plus sur les boucles (vous pouvez lire l'article "

      Résumé de la série d'apprentissage des boucles PHP

      "). L'instruction if else est un type d'exécution basé sur un jugement conditionnel dans le contrôle des processus. Lorsque cette instruction est exécutée, la condition est d'abord jugée, puis l'opération correspondante est effectuée sur la base du résultat du jugement. Il peut être subdivisé en trois types, à savoir l'instruction if, l'instruction if...else, l'instruction if...else if...else. La syntaxe de l'instruction

      if : rrreeeif...else La syntaxe de l'instruction :

      rrreee🎜if...else La syntaxe de l'instruction if...else : 🎜rrreee🎜D'accord, c'est tout. avez d'autres idées. Si vous le savez, vous pouvez cliquer dessus. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je recommande un tutoriel vidéo gratuit sur les tableaux PHP : 🎜Explication vidéo de la fonction tableau de fonctions PHP🎜, venez apprendre ! 🎜

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