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
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]; }
而如果 $arr[$i]
小于 $max
,但 $arr[$i]
又大于 $secMax
,则只交换 $secMax
和 $arr[$i]
间的值 ,将$arr[$i]
复制给$secMax
if ($arr[$i] < $max && $arr[$i] > $secMax){ $secMax = $arr[$i]; }puis utiliser une boucle for pour parcourir en continu le tableau $arr. [Si vous ne comprenez pas, vous pouvez lire l'article "PHP Loop Learning 3 : Comment utilisez une instruction de boucle for pour parcourir un tableau
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);
$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 (判断条件) { 语句块; }Une 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!