이전 글에서는 버블 알고리즘을 사용하여 배열 요소를 오름차순으로 정렬하는 방법을 소개했습니다. 관심이 있으시면 링크를 클릭하여 → "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]; }
而如果 $arr[$i]
小于 $max
,但 $arr[$i]
又大于 $secMax
,则只交换 $secMax
和 $arr[$i]
间的值 ,将$arr[$i]
复制给$secMax
if ($arr[$i] < $max && $arr[$i] > $secMax){ $secMax = $arr[$i]; }판단을 내린 다음 for 루프를 사용하여 $arr 배열을 계속 순회해야 합니다. [이해가 되지 않는다면 "PHP 루프 학습 3: 방법을 읽어보세요. for 루프 문을 사용하여 배열을 순회하세요
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 (判断条件) { 语句块; }이런 방식으로 연속 비교하면 $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!