> 백엔드 개발 > PHP 튜토리얼 > PHP에서 2차원 배열을 특정 값으로 효율적으로 필터링하려면 어떻게 해야 합니까?

PHP에서 2차원 배열을 특정 값으로 효율적으로 필터링하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-11-26 02:08:11
원래의
311명이 탐색했습니다.

How can I efficiently filter a two-dimensional array in PHP by a specific value?

PHP에서 2차원 배열을 값으로 효율적으로 필터링

PHP 프로그래밍에서 특정 값으로 2차원 배열을 효율적으로 필터링 다용도 array_filter 함수와 함께 사용하여 달성할 수 있습니다. callback.

단일 값으로 단순 필터링

키의 특정 값으로 배열을 필터링하려면 다음 구문을 사용할 수 있습니다.

$new = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});
로그인 후 복사

여기서 $arr는 입력 배열이고 콜백 함수는 각 하위 배열의 name 키가 대상 값과 일치하는지 확인합니다. 결과 $new 배열에는 이름이 'CarEnquiry'와 같은 하위 배열만 포함됩니다.

여러 값에 대한 상호 교환 가능한 필터링

대상 값이 다를 수 있는 경우 다음을 수행할 수 있습니다. 교환 가능한 필터링을 처리하도록 콜백 함수를 강화합니다.

$filterBy = 'CarEnquiry'; // or Finance etc.

$new = array_filter($arr, function ($var) use ($filterBy) {
    return ($var['name'] == $filterBy);
});
로그인 후 복사

콜백 함수의 use 키워드 다른 대상 값을 지정하도록 수정하여 동적 필터링을 허용할 수 있는 $filterBy 변수에 액세스할 수 있습니다.

사용 예

다음 배열을 예로 들어 보겠습니다. :

$arr = [
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'NEW',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'CALL1',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Finance',
        'status' => 'CALL2',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Partex',
        'status' => 'CALL3',
        'appointment' => 0
    ]
];
로그인 후 복사

이름이 'CarEnquiry' 결과와 동일한 항목만 포함하도록 $arr 필터링 in:

$filtered = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});
로그인 후 복사

결과 $filtered 배열에는 다음이 포함됩니다.

Array
(
    [0] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => NEW
            [appointment] => 0
        )

    [1] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => CALL1
            [appointment] => 0
        )

    )
로그인 후 복사

위 내용은 PHP에서 2차원 배열을 특정 값으로 효율적으로 필터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿