>  기사  >  백엔드 개발  >  PHP 배열 학습: 배열 요소를 비교하고 첫 번째와 두 번째로 큰 값을 얻습니다.

PHP 배열 학습: 배열 요소를 비교하고 첫 번째와 두 번째로 큰 값을 얻습니다.

青灯夜游
青灯夜游원래의
2021-08-18 12:06:063134검색

이전 글에서는 버블 알고리즘을 사용하여 배열 요소를 오름차순으로 정렬하는 방법을 소개했습니다. 관심이 있으시면 링크를 클릭하여 → "PHP 배열 학습: 버블 알고리즘을 사용하여 정렬"을 읽어보세요. 오름차순으로 요소를!" 》. 이번에는 PHP 배열 학습 시리즈를 이어가며 배열 요소를 비교하여 첫 번째와 두 번째로 큰 값을 얻는 방법을 소개합니다.

이 기사의 주제는 "주어진 숫자 집합의 최대값과 두 번째 최대값 계산"입니다.

구현 아이디어: 이 숫자 집합을 래핑하려면 배열을 사용하므로 배열 요소의 크기를 비교해야 합니다.

두 변수 $max$secMax설정 >, 얻은 최대값과 두 번째 최대값을 저장하는 데 사용됩니다. 그러나 먼저 모든 사람에게 초기 값을 할당하고 배열의 첫 번째 요소와 두 번째 요소를 할당해야 합니다. 하지만 $max$secMax보다 큰지 확인하세요. 따라서 $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;
}

루프 본문에서 $max, $secMax를 배열의 각 값($arr[$i] ) 비교:

  • $arr[$i]가 더 큰 경우 $max보다 $max 값을 $secMax에 할당하고 $arr[$i]를 $max,


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

    • 그리고 $arr[$i]가 다음보다 작은 경우 $max, 그러나 $arr[$i]가 $secMax보다 큰 경우 $secMax 및 $arr[$i] 사이에서 값이 교환됩니다. $arr[$i]$secMax에 복사하세요.

      if (判断条件) {
          语句块;
      }
      PHP 배열 학습: 배열 요소를 비교하고 첫 번째와 두 번째로 큰 값을 얻습니다. 이런 방식으로 연속 비교하면 $max가 배열의 최대값을 저장하고 $secMax가 배열의 두 번째로 큰 값을 저장하는지 확인할 수 있습니다.

      전체 구현 코드를 살펴보겠습니다.

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

      테스트: 다음 배열을 정의하고 takeNum($arr) 함수를 호출하여 출력을 확인합니다.

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

      첫 번째 가장 큰 값이 555인 것을 볼 수 있습니다. , 두 번째로 큰 값은 429입니다. 출력 결과가 다음과 같은지 확인하세요.

      OK, 출력 결과가 정확합니다.

      다음으로 사용된 지식 포인트에 대해 이야기하겠습니다. 루프에 대해서는 더 말할 필요가 없습니다. ("

      PHP 루프 학습 시리즈 요약

      " 기사를 읽어보세요) if else 문에 대해 간략하게 소개하겠습니다. if else 문은 프로세스 제어에서 조건부 판단을 기반으로 한 실행 유형입니다. 이 명령문이 실행되면 먼저 조건을 판단한 후 판단 결과에 따라 해당 연산을 수행합니다. if 문, if...else 문, if...else if...else 문 등 세 가지 유형으로 나눌 수 있습니다.

      if 문의 구문: rrreeeif...else 문의 구문:

      rrreee🎜if...else if...else 문의 구문: 🎜rrreee🎜 좋습니다, 그게 전부입니다. 다른 아이디어가 있으면 클릭해 보세요. → →🎜php 동영상 튜토리얼🎜🎜🎜마지막으로 PHP 배열에 대한 무료 동영상 튜토리얼을 추천합니다: 🎜PHP 함수 배열 배열 함수 동영상 설명🎜, 와서 배워보세요! 🎜

위 내용은 PHP 배열 학습: 배열 요소를 비교하고 첫 번째와 두 번째로 큰 값을 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.