>  기사  >  백엔드 개발  >  중첩된 PHP 배열에서 최소값과 최대값을 효율적으로 찾는 방법은 무엇입니까?

중첩된 PHP 배열에서 최소값과 최대값을 효율적으로 찾는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 15:04:02399검색

How to Efficiently Find Minimum and Maximum Values in a Nested PHP Array?

PHP 배열에서 최소값 및 최대값 검색

문제:

중첩된 PHP 배열이 주어지면 이를 효율적으로 수행하는 방법을 결정하십시오. 특정 키에 대한 최소값과 최대값을 추출합니다.

예:

<code class="php">$array = [
    [
        'id' => '20110209172713',
        'Date' => '2011-02-09',
        'Weight' => '200',
    ],
    [
        'id' => '20110209172747',
        'Date' => '2011-02-09',
        'Weight' => '180',
    ],
    [
        'id' => '20110209172827',
        'Date' => '2011-02-09',
        'Weight' => '175',
    ],
    [
        'id' => '20110211204433',
        'Date' => '2011-02-11',
        'Weight' => '195',
    ],
];</code>

해결책:

옵션 1: array_column() 및 min()/max() 사용

이 방법은 array_column() 함수를 활용하여 'Weight' 값을 숫자 배열로 추출합니다. 그런 다음 min() 및 max() 함수를 사용하여 각각 최소값과 최대값을 결정합니다.

<code class="php">$weights = array_column($array, 'Weight');
$minValue = min($weights);
$maxValue = max($weights);</code>

옵션 2: array_map() 사용

옵션 1과 유사하게 이 메서드는 array_map()을 활용하여 'Weight' 값을 추출합니다. 그러나 매핑을 수행하려면 사용자 정의 함수가 필요합니다.

<code class="php">$weights = array_map(function($item) {
    return $item['Weight'];
}, $array);

$minValue = min($weights);
$maxValue = max($weights);</code>

옵션 3(더 이상 사용되지 않음): 중첩 루프 사용

이 방법은 현재로서는 권장되지 않습니다. 특히 대규모 배열의 경우 상대적으로 비효율적입니다.

<code class="php">$minValue = INF;
$maxValue = -INF;

foreach ($array as $item) {
    if ($item['Weight'] < $minValue) {
        $minValue = $item['Weight'];
    }

    if ($item['Weight'] > $maxValue) {
        $maxValue = $item['Weight'];
    }
}</code>

옵션 4: array_reduce() 사용

이 방법은 추가 계산을 수행해야 하는 특정 시나리오에 유용합니다. 또는 최소값 또는 최대값을 결정하면서 처리합니다.

<code class="php">$minValue = array_reduce($array, function($min, $item) {
    return min($min, $item['Weight']);
}, PHP_INT_MAX);

$maxValue = array_reduce($array, function($max, $item) {
    return max($max, $item['Weight']);
}, -PHP_INT_MAX);</code>

위 내용은 중첩된 PHP 배열에서 최소값과 최대값을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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