Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Array-Lernen: Array-Elemente vergleichen und den ersten und zweitgrößten Wert ermitteln

PHP-Array-Lernen: Array-Elemente vergleichen und den ersten und zweitgrößten Wert ermitteln

青灯夜游
青灯夜游Original
2021-08-18 12:06:063193Durchsuche

Im vorherigen Artikel haben wir die Methode zur Verwendung des Blasenalgorithmus zum Sortieren der Array-Elemente in aufsteigender Reihenfolge vorgestellt. Wenn Sie interessiert sind, können Sie auf den Link klicken, um → „PHP-Array-Lernen: Verwenden des Blasenalgorithmus zum Sortieren“ zu lesen die Elemente in aufsteigender Reihenfolge!“ 》. Dieses Mal setzen wir die PHP-Array-Lernreihe fort und stellen die Methode vor, Array-Elemente zu vergleichen und den ersten und zweitgrößten Wert zu erhalten.

Das Thema dieses Artikels lautet: „Berechnen Sie bei einer gegebenen Reihe von Zahlen deren Maximal- und Zweitmaximumwerte.“

Implementierungsidee: Verwenden Sie ein Array, um diesen Satz von Zahlen zu umschließen, also müssen Sie die Größe der Array-Elemente vergleichen.

Setzen Sie zwei Variablen $max und $secMax, wird zum Speichern des Maximalwerts und des zweiten erhaltenen Maximalwerts verwendet. Sie müssen jedoch zunächst allen Anfangswerte zuweisen und ihnen das erste und das zweite Element des Arrays zuweisen. Stellen Sie jedoch sicher, dass $max größer als $secMax ist, also müssen Sie ein Urteil $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];
    }

    fällen und dann eine for-Schleife verwenden, um das $arr-Array kontinuierlich zu durchlaufen. [Wenn Sie es nicht verstehen, können Sie den Artikel „PHP Loop Learning 3: How to“ lesen Verwenden Sie eine for-Schleifenanweisung, um ein Array zu durchlaufen >$arr[$i] ) Vergleich:
    Wenn $arr[$i] größer ist als $max, dann weisen Sie $max den Wert $secMax zu, weisen Sie $arr[$i] zu code>$max,

    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;
    }

    • Und wenn $arr[$i] kleiner ist als $max, aber $arr[$i] ist größer als $secMax, dann nur $secMax und $arr[$i] werden Werte ausgetauscht, kopieren Sie $arr[$i] nach $secMax.


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

      Durch einen kontinuierlichen Vergleich auf diese Weise kann sichergestellt werden, dass $max den Maximalwert des Arrays und $secMax den zweitgrößten Wert des Arrays speichert.

      Sehen wir uns den vollständigen Implementierungscode an: PHP-Array-Lernen: Array-Elemente vergleichen und den ersten und zweitgrößten Wert ermitteln

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

      Testen Sie ihn: Definieren Sie das folgende Array, rufen Sie die Funktion takeNum($arr) auf, um die Ausgabe anzuzeigen

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

      Es ist ersichtlich, dass der erste größte Wert 555 ist , und der erste Der zweitgrößte Wert ist 429; prüfen Sie, ob das Ausgabeergebnis wie folgt lautet:

      OK, das Ausgabeergebnis ist korrekt.

      Lassen Sie uns als Nächstes über die verwendeten Wissenspunkte sprechen. Über Schleifen müssen Sie nicht mehr sprechen (Sie können den Artikel „Zusammenfassung der PHP-Loop-Lernserie“ lesen). Lassen Sie uns eine kurze Einführung in die if else-Anweisung geben.

      if else-Anweisung ist eine Art der Ausführung, die auf einer bedingten Beurteilung in der Prozesssteuerung basiert. Wenn diese Anweisung ausgeführt wird, wird zunächst die Bedingung beurteilt und dann wird basierend auf dem Beurteilungsergebnis die entsprechende Operation ausgeführt. Es kann in drei Typen unterteilt werden, nämlich if-Anweisung, if...else-Anweisung, if...else if...else-Anweisung. Die Syntax der

      if-Anweisung:

      if (判断条件 1) {
          语句块 1;
      } else if (判断条件 2) {
          语句块 2;
      } else if (判断条件 3) {
          语句块 3;
      }
      ......
      if...else Die Syntax der Anweisung: rrreee

      if...else Die Syntax der if...else-Anweisung:

      rrreeeOkay, das ist alles Wenn Sie weitere Ideen haben, können Sie hier klicken. → →php-Video-Tutorial

      🎜🎜Abschließend empfehle ich ein kostenloses Video-Tutorial zu PHP-Arrays: 🎜PHP-Funktions-Array-Array-Funktions-Video-Erklärung🎜, kommen Sie und lernen Sie! 🎜

Das obige ist der detaillierte Inhalt vonPHP-Array-Lernen: Array-Elemente vergleichen und den ersten und zweitgrößten Wert ermitteln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn