>  기사  >  백엔드 개발  >  PHP 배열 학습 및 함수를 사용하여 최대값과 두 번째 최대값을 추출하는 팁

PHP 배열 학습 및 함수를 사용하여 최대값과 두 번째 최대값을 추출하는 팁

青灯夜游
青灯夜游원래의
2021-08-18 14:03:213832검색

이전 글 → "PHP 배열 학습: 배열 요소를 비교하고 첫 번째와 두 번째로 큰 값 얻기"에서는 for 루프를 사용하여 배열의 요소 크기를 하나씩 비교하고 최대값과 두 번째 값을 얻는 방법을 소개했습니다. 배열의 두 번째 값. 두 번째로 큰 값 방법입니다. 이 방법이 조금 복잡하다고 생각하시나요? 사실 PHP 함수를 사용하여 최대값과 두 번째 최대값을 얻을 수 있습니다. 이에 대해 알아봅시다~

이 글의 주제는 이전 글과 동일합니다. 일련의 숫자가 주어지면 최대값과 두 번째 최대값을 계산합니다." 하지만 이번에는 for 루프와 if 문을 사용하지 않습니다. 이를 달성하기 위해 PHP 내장 함수를 사용합니다.

다음과 같은 데이터 집합을 포함하는 배열을 정의합니다.

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

최대값 555와 두 번째 최대값 429를 꺼내고 싶습니다.

구현 아이디어 1:

사실 PHP에는 max() 함수가 내장되어 있는데, 이를 사용하면 한 단계로 배열의 최대값을 얻을 수 있으며, 그런 다음 최대값을 제거할 수 있습니다. 그런 다음 다음 요소에서 max() 함수를 사용하여 최대값을 얻습니다.

구현 코드를 살펴보겠습니다:

<?php
header("content-type:text/html;charset=utf-8");
$arr = array(555,5,1,429,18,21,52,2,52,9,3,);
$max = max($arr);
$arr = array_diff($arr,array($max));
$secMax = max($arr);
echo "最大值为".$max.",第二大值为".$secMax;
?>

분석:

  • max($arr)를 사용하여 배열의 최대값을 구하고 이를 $max에 할당합니다. . max($arr)获取数组最大值赋值给$max

  • 然后创建一个只包含$max一个值的新数组,将该数组和$arr数组比较,取差值;简单来说,array_diff($arr,array($max))就是用来删除最大值$max

  • 最后在调用一次max($arr)在剩下的元素中取最大值,就获得到原数组的第二大元素,将该值赋给$secMax

  • 그런 다음 $max 값 하나만 포함하는 새 배열을 만들고 이 배열을 $arr 배열과 비교한 다음 차이점을 간단히 설명합니다. array_diff($arr,array($max)) code>는 최대값 <code>$max를 삭제하는 데 사용됩니다.

마지막으로 max($arr)를 호출하여 나머지 요소 중 최대값을 얻은 다음 원래 배열에서 두 번째로 큰 요소를 가져오고 이 값을 $초최대. PHP 배열 학습 및 함수를 사용하여 최대값과 두 번째 최대값을 추출하는 팁

출력 결과는 다음과 같습니다.

PHP 배열 학습 및 함수를 사용하여 최대값과 두 번째 최대값을 추출하는 팁

구현 아이디어 2:

PHP 배열 학습 및 함수를 사용하여 최대값과 두 번째 최대값을 추출하는 팁

요소 값의 크기에 따라 배열을 오름차순 또는 내림차순으로 정렬한 다음 최대값과 두 번째 값으로 정렬할 수 있습니다. 배열의 최대값은 다음과 같습니다. 첫 번째와 두 번째(내림차순) 또는 첫 번째에서 마지막과 두 번째에서 마지막(오름차순) 요소

//升序排序
$arr = array(555,5,1,429,18,21,52,2,52,9,3,);
sort($arr);
var_dump($arr);

//降序排序
$arr = array(555,5,1,429,18,21,52,2,52,9,3,);
rsort($arr);
var_dump($arr);

PHP 배열 학습 및 함수를 사용하여 최대값과 두 번째 최대값을 추출하는 팁

이 두 요소만 제거하면 됩니다. 구현 코드를 살펴보겠습니다.

<?php
header("content-type:text/html;charset=utf-8");
$arr = array(555,5,1,429,18,21,52,2,52,9,3,);

//降序排序
rsort($arr);
$max = $arr[0];
$secMax = $arr[1];
echo "最大值为".$max.",第二大值为".$secMax."<br>";


//升序排序
sort($arr);
$len = count($arr); //数组长度
$max = $arr[$len-1];
$secMax = $arr[$len-2];
echo "最大值为".$max.",第二大值为".$secMax;
?>

출력 결과:

오름차순 방법은 배열 길이 문제도 고려해야 하지만 내림차순 방법은 더 간단합니다.

그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 동영상 튜토리얼🎜🎜🎜마지막으로 PHP 배열에 대한 무료 동영상 튜토리얼을 추천합니다: 🎜PHP 함수 배열 배열 함수 동영상 설명🎜, 와서 배워보세요! 🎜

위 내용은 PHP 배열 학습 및 함수를 사용하여 최대값과 두 번째 최대값을 추출하는 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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