현재 위치: > 최신 기사 목록> Laravel에서 Array_Filter ()의 실제 적용의 예

Laravel에서 Array_Filter ()의 실제 적용의 예

M66 2025-06-04

Laravel의 일일 개발 과정에서 우리는 종종 배열의 "유효하지 않은"데이터를 청소 해야하는 시나리오를 겪습니다. 예를 들어, 양식에 채워지지 않은 필드, API 매개 변수에 빈 값 또는 특정 논리에 따라 필터링해야합니다. PHP에서 Array_Filter ()는 이러한 문제를 처리하는 강력한 도구입니다.

Array_Filter () 는 기본 PHP 기능이지만 Laravel 프로젝트에는 매우 광범위한 응용 프로그램 시나리오도 있습니다. 다음으로, 우리는 Laravel 프로젝트에서 우아하게 사용하기 위해 몇 가지 실제 예를 통해 단계별로 당신을 데려갑니다.

기본 사용 : 배열에서 널 또는 빈 줄 제거

가장 일반적인 시나리오 중 하나는 사용자가 양식을 제출할 때이지만 일부 필드는 비어 있습니다. 우리는 비어 있지 않은 필드 만 처리하고 싶습니다.

 $data = [
    'name' => 'Alice',
    'email' => '',
    'phone' => null,
    'age' => 25,
];

// 사용 array_filter 빈 값을 필터링하십시오(기본적으로 제거됩니다 false、null、''、0)
$filtered = array_filter($data);

dd($filtered);

산출:

 [
    'name' => 'Alice',
    'age' => 25,
]

Laravel 에서이 처리는 종종 컨트롤러에서 요청 된 데이터를 수신 한 후 정리하는 데 사용됩니다.

 public function store(Request $request)
{
    $data = array_filter($request->only(['name', 'email', 'phone', 'age']));
    
    // 다음 논리는 비어있는 필드 만 처리합니다
    User::create($data);

    return redirect()->to('https://m66.net/success');
}

사용자 정의 필터 : 숫자를 유지하지만 빈 줄을 제거하십시오

기본 array_filter ()는 숫자 0과 문자열 "0"을 포함하여 모든 "false 값"을 제거합니다. 빈 줄을 제거하고 유효한 0S를 유지하려면 어떻게해야합니까?

 $data = [
    'status' => 0,
    'code' => '0',
    'description' => '',
];

// 맞춤형 콜백,빈 줄 만 필터링하십시오
$filtered = array_filter($data, function ($value) {
    return $value !== '';
});

산출:

 [
    'status' => 0,
    'code' => '0',
]

이 작문 방법은 주문 상태, 가격대 및 기타 논리를 처리하는 데 매우 실용적이며 효과적인 "0"의 오류를 피할 수 있습니다.

컬렉션과 함께 사용하십시오

Laravel의 컬렉션은 또한 Array_Filter () 와 유사한 유사한 필터 () 메소드를 제공하지만 더 강력합니다. 예를 들어, 체인에서 작동 할 수 있습니다.

 $users = collect([
    ['name' => 'Tom', 'email' => 'tom@m66.net'],
    ['name' => 'Jerry', 'email' => null],
    ['name' => 'Spike', 'email' => ''],
]);

$filtered = $users->filter(function ($user) {
    return !empty($user['email']);
});

Filter ()를 직접 사용하여 논리를 단순화 할 수도 있습니다.

 $filtered = $users->filter(fn($user) => !empty($user['email']));

산출:

 [
    ['name' => 'Tom', 'email' => 'tom@m66.net'],
]

실제 시나리오 : 요청의 필터 검색 기준

사용자 검색 기능을 개발하고 프론트 엔드가 선택적 매개 변수를 전달한다고 가정하고 비어 있지 않은 조건이 포함 된 쿼리 만 빌드하려고합니다.

 public function index(Request $request)
{
    $filters = array_filter($request->only(['name', 'email', 'status']), function ($val) {
        return $val !== '';
    });

    $users = User::where($filters)->get();

    return view('users.index', compact('users'));
}

이러한 방식으로 실제 입력에 따라 쿼리 조건을 유연하게 빌드하여 Where ( '', '') 와 같은 잘못된 쿼리를 피할 수 있습니다.

요약

Array_Filter () 는 간단하지만 매우 강력한 도구입니다. Laravel의 요청 및 수집과 함께 사용하면 데이터 청소 및 코드 가독성의 효율성을 크게 향상시킬 수 있습니다.

프로젝트에서 Array_Filter ()를 사용하지 않았다면 지금 시도해보고 Laravel을 쓸 때 좋은 도우미가 될 수 있습니다!