문제:
중첩된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!