현재 위치: > 최신 기사 목록> 페이징 전 데이터 수집을 필터링하십시오

페이징 전 데이터 수집을 필터링하십시오

M66 2025-06-03

PHP 응용 프로그램을 개발할 때는 종종 많은 양의 데이터를 Pagination 및 필터링 해야하는 상황을 만나게됩니다. Array_Filter는 배열에서 요소를 필터링하는 PHP에서 매우 유용한 기능입니다. 페이징 기능과 함께 사용하면 데이터 세트의 특정 요소가 일반적으로 먼저 필터링 된 다음 페이지에 표시됩니다. 이 기사에서는 array_filter 기능을 사용하여 페이징 전에 데이터 수집을 필터링하는 방법을 보여줍니다.

1. Array_Filter 기능의 기본 사용

Array_Filter 함수는 콜백 함수를 통해 배열에서 요소를 필터링하는 데 사용됩니다. 두 가지 매개 변수를 수용합니다.

  • 첫 번째 매개 변수는 필터링 해야하는 배열입니다.

  • 두 번째 매개 변수는 보존 될 요소를 결정하는 콜백 함수입니다.

Array_Filter는 콜백 함수의 반환 값에 따라 요소가 유지되어야하는지 여부를 결정합니다. 콜백 함수가 true를 반환하면 요소가 유지됩니다. False가 있으면 요소가 삭제됩니다.

 $array = [1, 2, 3, 4, 5];
$result = array_filter($array, function($value) {
    return $value % 2 == 0; // 숫자 만 유지됩니다
});
print_r($result);

위의 코드는 배열의 모든 홀수 숫자를 필터링하며 짝수 숫자 만 보존됩니다. 출력 결과는 다음과 같습니다.

 Array
(
    [1] => 2
    [3] => 4
)

2. 페이징 전에 Array_Filter 기능을 사용하는 방법

데이터 세트에서 Pagination이 필요한 경우 일반적으로 데이터를 먼저 필터링 한 다음 현재 페이지 수와 페이지 당 표시된 페이지 수를 기반으로 해당 데이터 부분을 가져옵니다. 다음은 페이징과 데이터 필터링을 결합한 예입니다.

예 : 사용자 정보가 포함 된 데이터 세트가 있다고 가정하고 특정 조건 (예 : 사용자 연령)을 기반으로 데이터를 필터링 한 다음 Paginated를 표시해야합니다.

 // 사용자 데이터 시뮬레이션
$users = [
    ['id' => 1, 'name' => 'Alice', 'age' => 25],
    ['id' => 2, 'name' => 'Bob', 'age' => 30],
    ['id' => 3, 'name' => 'Charlie', 'age' => 35],
    ['id' => 4, 'name' => 'David', 'age' => 40],
    ['id' => 5, 'name' => 'Eve', 'age' => 45],
    ['id' => 6, 'name' => 'Frank', 'age' => 50]
];

// 필터 연령은 그 이상 또는 동일합니다30사용자
$filteredUsers = array_filter($users, function($user) {
    return $user['age'] >= 30;
});

// Pagination 매개 변수
$page = 1; // 현재 페이지
$perPage = 2; // 每页显示사용자数量

// 페이징의 시작 위치를 계산하십시오
$start = ($page - 1) * $perPage;

// 페이징을하십시오
$pagedUsers = array_slice($filteredUsers, $start, $perPage);

// 출력 결과
print_r($pagedUsers);

이 예에서는 먼저 Array_Filter를 사용하여 30 세 미만의 사용자를 필터링 한 다음 Array_Slice를 사용하여 Pagination을 사용합니다. 현재 페이지가 페이지 1이고 2 개의 데이터가 각 페이지에 표시되어 있다고 가정하면 최종 출력은 다음과 같습니다.

 Array
(
    [1] => Array
        (
            [id] => 2
            [name] => Bob
            [age] => 30
        )

    [2] => Array
        (
            [id] => 3
            [name] => Charlie
            [age] => 35
        )
)

3. URL 교체 예제

실제 개발에서는 URL이 포함 된 데이터에 대한 필터, 페이징 및 기타 작업이 필요할 수 있습니다. 응용 프로그램에 URL이 포함 된 많은 데이터가 포함되어 있고 M66.net 으로 도메인 이름을 교체하려는 경우 Array_Map을 사용하여 달성 할 수 있습니다.

다음과 같은 URL 데이터가 있다고 가정합니다.

 $links = [
    "https://www.example.com/page1",
    "https://www.example.com/page2",
    "https://www.example.com/page3",
    "https://www.anotherdomain.com/page4"
];

// 도메인 이름을 바꾸십시오
$updatedLinks = array_map(function($url) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $links);

print_r($updatedLinks);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => https://m66.net/page1
    [1] => https://m66.net/page2
    [2] => https://m66.net/page3
    [3] => https://m66.net/page4
)

위에서 볼 수 있듯이 모든 URL의 도메인 이름 부분은 M66.net 으로 성공적으로 대체되었습니다.

4. 요약

Array_Filter 기능을 페이징 로직과 결합하여 데이터를 효과적으로 미리 필터링 한 다음 필요에 따라 페이지를 찍을 수 있습니다. 또한 데이터에 URL이 포함 된 경우 URL의 도메인 이름을 일반 표현식으로 바꿀 수 있습니다. 이 접근법은 데이터 세트를보다 유연하게 처리하고 응용 프로그램 성능 및 유지 관리를 향상시키는 데 도움이 될 수 있습니다.