개발 꿀팁/PHP

php의 max,min 함수 상세 내역

Jammie 2022. 7. 23. 15:33
반응형

1. 정의
(1) max( ) 최대값을 반환합니다.
설명서: http://ww.w3school.com.cn/php/func_math_max.asp

max( ) 은( 는) 인자의 가장 큰 값을 되돌려줍니다.
만약 하나의 매개 변수만 있고 배열이 있다면, max() 배열에서 가장 큰 값을 되돌려줍니다. 첫 번째 인자가 정수, 문자열 또는 부동 소수점일 경우, 두 개 이상의 인자가 필요합니다. max() 는 이 값을 사용합니다.이 값들 중 가장 큰 값을 반환합니다.무궁무진한 여러 개를 비교할 수 있다값어치.

(2)min() 최소값을 반환합니다.
설명서: http://ww.w3school.com.cn/php/func_math_min.asp

min( ) 은( 는) 가장 작은 값을 반환합니다.
만약 하나의 매개 변수만 있고 배열이 있다면, min() 배열의 가장 작은 값을 되돌려줍니다. 첫 번째 인자가 정수, 문자열 또는 부동 소수점일 경우 최소 두 개의 인자가 필요합니다. min() 는 이 값을 사용합니다.이 값들 중 가장 작은 값을 반환합니다.무궁무진한 여러 개를 비교할 수 있다값어치.

2. 인스턴스 코드 비교
(1) 1차원 배열 비교

//1차원 배열 값 비교
$arr1 = array(1,2,5,7,9);
    $max = max($arr1);
    $min = min($arr1);
    var_dump($max);   //9
    var_dump($min);   // 1

(2) 비교적 간단한 2차원 배열

 $arr2 = array(
      array(
      'code'=>"040100000045"
    ),
     array(
       'code'=>"040100000046"
     ),
      array(
          'code'=>"040100000047"
        ),
      array(
        'code'=>"040100000048"
      )
    );
    $max1 = max($arr2);
    $min1 = min($arr2);
    echo '<br/>';
    echo '<br/>';
    var_dump($max1);  //array(1) { ["code"]=> string(12) "040100000048" } 
    var_dump($min1);  //array(1) { ["code"]=> string(12) "040100000045" }

여기서 단일 필드의 2차원 배열도 비교할 수 있음을 발견하였다.우리는 우리가 비교해야 할 필드를 새로운 배열에 대입한 다음 max(), 또는 min() 함수를 사용할 수 있다.

(3) 약간 복잡한 2차원 배열

 $arr2 = array(
      array(
        'code'=>"040100000045",
        'type'=>"이등품",
      ),
      array(
        'code'=>"040100000048",
        'type'=>"먹거리",
      ),
      array(
        'code'=>"040100000047",
        'type'=>"삼품",
      ),
      array(
        'code'=>"040100000046",
        'type'=>"네 가지 물건",
      )
    );
    $max2 = max($arr2);
    $min2 = min($arr2);
    echo '<br/>';
    echo '<br/>';
    //결과를 출력하다:array(2) { ["code"]=> string(12) "040100000048" ["type"]=> string(6) "먹거리" } 
    var_dump($max2);
    // 결과를 출력하다:array(2) { ["code"]=> string(12) "040100000045" ["type"]=> string(6) "이등품" } 
    var_dump($min2);

여기서 우리는 비교한 결과가 여전히 정상이라는 것을 발견할 수 있다.그럼 실험을 계속해 보자.

(4)더 복잡한 배열 비교

$arr3 = array(
      array(
        'test'=>"한번 해보다",
        'code'=>"040100000045",
        'type'=>"이등품",
      ),
      array(
        'test'=>"두 번 시험해 보다",
        'code'=>"040100000048",
        'type'=>"먹거리",
      ),
      array(
        'test'=>"세 번 시험해 보다",
        'code'=>"040100000047",
        'type'=>"삼품",
      ),
      array(
        'test'=>"네 번 시험해 보다",
        'code'=>"040100000046",
        'type'=>"네 가지 물건",
      )
    );
    $max3 = max($arr3);
    $min3 = min($arr3);
    echo '<br/>';
    echo '<br/>';
    //결과를 출력하다:array(3) { ["test"]=> string(9) "네 번 시험해 보다" ["code"]=> string(12) "040100000046" ["type"]=> string(6) "네 가지 물건" }
    var_dump($max3);
    //결과를 출력하다:array(3) { ["test"]=> string(9) "한번 해보다" ["code"]=> string(12) "040100000045" ["type"]=> string(6) "이등품" }
    var_dump($min3);

여기서 우리는 code의 정렬이 더 이상 정확하지 않다는 것을 알게 되었고, 대신 test 필드는 오히려 최대 최소값으로 출력되었다.여기서 max와 min 함수의 비교는 왼쪽에서 오른쪽으로 비교됨을 알 수 있다.특히 2차원 배열의 경우 첫 번째 필드의 값을 먼저 비교한다.

(5) 테스트, 첫 번째 필드가 동일한 배열

//첫 번째 필드가 같은 배열
    $arr4 = array(
      array(
        'test'=>"한번 해보다",
        'code'=>"040100000045",
        'type'=>"이등품",
      ),
      array(
        'test'=>"한번 해보다",
        'code'=>"040100000048",
        'type'=>"먹거리",
      ),
      array(
        'test'=>"한번 해보다",
        'code'=>"040100000047",
        'type'=>"삼품",
      ),
      array(
        'test'=>"한번 해보다",
        'code'=>"040100000046",
        'type'=>"네 가지 물건",
      )
    );
    $max4 = max($arr4);
    $min4 = min($arr4);
    echo '<br/>';
    echo '<br/>';
    //결과를 출력하다:array(3) { ["test"]=> string(9) "한번 해보다" ["code"]=> string(12) "040100000048" ["type"]=> string(6) "먹거리" } 
    var_dump($max4);
//결과를 출력하다: array(3) { ["test"]=> string(9) "한번 해보다" ["code"]=> string(12) "040100000045" ["type"]=> string(6) "이등품" }
    var_dump($min4);

여기서 분명히 알 수 있다.max와 min 함수는 왼쪽에서 오른쪽으로 첫 번째 그룹을 비교하고, 첫 번째 그룹이 같으면 두 번째 그룹을 비교한다.그리고 결과를 출력한다.

max() 함수와 min() 함수는 간단한 비교가 괜찮으며, 다차원 배열의 각 값을 정렬해야 한다면 max와 min으로 표현한다.그런데 잘 안 어울려요.
1
3. php 2D 배열 세부 필드 최대값 가져오기

//여기서 $code는 2차원 배열입니다. 우리는 안에 있는 code 필드의 최대값을 추출해야 합니다
//$code[0]에서 code 값 가져오기
 $max = $code[0]['code'];
 //$code 필드를 순환한 다음 순환 후의 값을 비교합니다
      foreach ($code as $k => $v) {
        if ($v > $max) {
        //순환비교, 최대값 취하기
          $max = $v;
        }
      }
      //$max가 배열입니다. 배열의 'code' 문자열을 가져옵니다
      $max = $max['code'];
    }
    return $max;

 

반응형