PHP 개발에서 배열 데이터를 처리 할 때 특정 조건을 충족하고 최소 값을 찾는 요소를 필터링해야합니다. 이 기사는 Array_Filter 및 Min 함수를 결합하여 효율적이고 간결한 최소 값 필터링 방법을 달성하는 방법을 소개합니다.
ARRAY_FILTER : 배열을 가로 지르고 사용자 정의 된 콜백 함수를 기반으로 조건을 충족하는 요소를 필터링하고 새 배열을 반환하는 데 사용됩니다.
Min : 배열의 최소값 또는 여러 매개 변수의 최소값을 반환합니다.
일반적으로 Min을 직접 사용하는 경우 조건을 충족하지 않는 요소를 필터링 할 수 없습니다. Array_Filter는 조건을 충족하는 요소를 필터링 한 다음 결과에 최소를 적용하여 최소값을 얻을 수 있습니다.
일부 제품의 가격을 나타내는 일련의 데이터가 있다고 가정하고, 100 개 이상의 가격으로 제품의 최소 가격 만 얻고 싶습니다.
<?php
$prices = [150, 50, 200, 120, 80, 300];
// 사용 array_filter 필터 아웃 가격은보다 큽니다 100 강요
$filtered = array_filter($prices, function($price) {
return $price > 100;
});
// 사용 min 필터링 된 배열에서 최소값을 얻으십시오
$minPrice = min($filtered);
echo "가격은보다 큽니다 100 최소값은입니다:" . $minPrice;
?>
출력 결과 :
가격은보다 큽니다 100 최소값은입니다:120
필터링 조건이 너무 엄격하여 필터링 된 배열이 비어 있으면 최소 기능이 경고를 던져 프로그램에 오류가 발생합니다.
먼저 필터링 어레이가 비어 있는지 확인할 수 있습니다.
<?php
$filtered = array_filter($prices, function($price) {
return $price > 500; // 엄격한 조건,결과가 없을 수 있습니다
});
if (!empty($filtered)) {
$minPrice = min($filtered);
echo "符合条件최소값은입니다:" . $minPrice;
} else {
echo "没有符合条件강요。";
}
?>
배열이 키 값 쌍이고 값에 따라 필터링 해야하는 경우 :
<?php
$products = [
'A' => 150,
'B' => 50,
'C' => 200,
'D' => 120,
'E' => 80,
'F' => 300,
];
$filtered = array_filter($products, fn($price) => $price > 100);
if (!empty($filtered)) {
$minPrice = min($filtered);
$minKey = array_search($minPrice, $filtered);
echo "가격은보다 큽니다100제품 중,최소 가격은입니다 $minPrice,제품 번호입니다 $minKey";
} else {
echo "기준을 충족하는 제품이 없습니다。";
}
?>
먼저 array_filter를 사용하여 기준을 충족하는 요소를 필터링하십시오.
그런 다음 최소를 사용하여 필터링 후 최소값을 찾으십시오.
런타임 오류를 피하기 위해 빈 배열의 경계 상황을 처리하는 데주의를 기울이십시오.
키 값 배열을 결합 할 때 Array_Search를 사용하여 해당 키 이름을 찾으십시오.
이 방법은 간결하고 명확하며 코드는 읽기 쉽고 효율적이며 필터링 및 최소 값을 찾는 대부분의 시나리오에 적합합니다.
관련 태그:
array_filter