Rumah >pembangunan bahagian belakang >tutorial php >Pembelajaran tatasusunan PHP: Bandingkan elemen tatasusunan dan dapatkan nilai pertama dan kedua terbesar

Pembelajaran tatasusunan PHP: Bandingkan elemen tatasusunan dan dapatkan nilai pertama dan kedua terbesar

青灯夜游
青灯夜游asal
2021-08-18 12:06:063194semak imbas

Dalam artikel sebelum ini, kami memperkenalkan kaedah menggunakan algoritma gelembung untuk mengisih elemen tatasusunan dalam tertib menaik Jika anda berminat, anda boleh klik pada pautan untuk membaca → " Pembelajaran Tatasusunan PHP: Menggunakan. Algoritma Buih untuk Isih Elemen dalam Susunan Menaik ! 》. Kali ini kami meneruskan siri pembelajaran tatasusunan PHP dan memperkenalkan kaedah membandingkan elemen tatasusunan dan mendapatkan nilai pertama dan kedua terbesar.

Tema artikel ini ialah: "Diberi satu set nombor, hitung nilai maksimum dan kedua maksimumnya".

Idea pelaksanaan: Gunakan tatasusunan untuk membalut set nombor ini, jadi ini akan melibatkan perbandingan saiz elemen tatasusunan

Tetapkan dua pembolehubah $max dan $secMax, digunakan untuk menyimpan nilai maksimum dan nilai maksimum kedua yang diperolehi. Walau bagaimanapun, anda perlu memberikan nilai awal kepada semua orang terlebih dahulu, memberikan elemen pertama dan elemen kedua tatasusunan kepada mereka. Tetapi pastikan $max lebih besar daripada $secMax, jadi anda perlu membuat pertimbangan

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

dan kemudian gunakan gelung for untuk terus melintasi tatasusunan $arr. [Jika anda tidak faham, anda boleh membaca artikel "Pembelajaran Gelung PHP 3: Cara menggunakan pernyataan gelung untuk merentasi tatasusunan "]

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

Dalam badan gelung, teruskan menambah $max, $secMaxBandingkan dengan setiap nilai ($arr[$i]) tatasusunan:

  • Jika $arr[$i] lebih besar daripada $max, tetapkan $max nilai kepada $secMax dan letakkan $arr[$i] Ditugaskan kepada $max,

if ($arr[$i] > $max){
    $secMax = $max;
    $max = $arr[$i];
}
  • dan jika $arr[$i] kurang daripada $max, tetapi $arr[$i] lebih besar daripada $secMax, kemudian hanya Tukar nilai antara $secMax dan $arr[$i], salin $arr[$i] ke $secMax.

if ($arr[$i] < $max && $arr[$i] > $secMax){
      $secMax = $arr[$i];
}

Dengan meneruskan membandingkan seperti ini, anda boleh memastikan $max menyimpan nilai maksimum tatasusunan dan $secMax menyimpan nilai kedua terbesar tatasusunan.

Mari kita lihat kod pelaksanaan lengkap:

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

Uji: tentukan tatasusunan berikut, panggil fungsi takeNum($arr) untuk melihat output

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

Ia boleh dilihat bahawa nilai maksimum pertama ialah 555 dan nilai maksimum kedua ialah 429; lihat jika hasil output adalah ini:

Pembelajaran tatasusunan PHP: Bandingkan elemen tatasusunan dan dapatkan nilai pertama dan kedua terbesar

OK; , output Hasilnya betul.

Seterusnya, mari kita bercakap tentang mata pengetahuan yang digunakan Tidak perlu bercakap lebih lanjut tentang gelung (anda boleh membaca artikel " Ringkasan Siri Pembelajaran Gelung PHP" Mari kita perkenalkan secara ringkas kepada anda jika lain kenyataan.

Pernyataan if else ialah sejenis pelaksanaan berdasarkan pertimbangan bersyarat dalam kawalan proses. Apabila penyataan ini dilaksanakan, syarat pertama kali dinilai, dan kemudian operasi yang sepadan dibuat berdasarkan keputusan penghakiman. Ia boleh dibahagikan kepada tiga jenis iaitu pernyataan if, if...else statement, if...else if...else statement.

Sintaks pernyataan if:

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

Sintaks pernyataan if...else:

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

if...else if...else Penyata Tatabahasa:

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

Itu sahaja jika anda ingin mengetahui lebih lanjut, anda boleh klik ini. → →Tutorial video php

Akhir sekali, saya mengesyorkan tutorial video percuma tentang tatasusunan PHP: Penjelasan video fungsi tatasusunan fungsi PHP, datang dan pelajari!

Atas ialah kandungan terperinci Pembelajaran tatasusunan PHP: Bandingkan elemen tatasusunan dan dapatkan nilai pertama dan kedua terbesar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn