> 백엔드 개발 > PHP 문제 > PHP에서 2차원 배열의 퍼지 쿼리를 구현하는 방법

PHP에서 2차원 배열의 퍼지 쿼리를 구현하는 방법

PHPz
풀어 주다: 2023-04-19 11:25:36
원래의
816명이 탐색했습니다.

PHP에서는 2차원 배열을 사용하는 것이 매우 일반적입니다. 그런데 2차원 배열의 특정 값을 쿼리해야 할 때 퍼지 쿼리를 어떻게 쉽게 수행할 수 있을까요? 이 기사에서는 PHP에서 2차원 배열 퍼지 쿼리를 구현하는 방법을 소개합니다.

1. 2차원 배열이란

먼저 2차원 배열이 무엇인지 알아보겠습니다. 간단히 말해서, 2차원 배열은 배열 내에 중첩된 하나 이상의 배열입니다. 각 배열은 자체 인덱스 또는 키-값 쌍을 가질 수 있습니다. 다음은 간단한 2차원 배열의 예입니다.

//定义一个关联型二维数组
$student = array(
    array('name' => '小明', 'age' => 18, 'gender' => '男'),
    array('name' => '小红', 'age' => 17, 'gender' => '女'),
    array('name' => '小刚', 'age' => 19, 'gender' => '男')
);
로그인 후 복사

2. 2차원 배열의 퍼지 쿼리 구현

이제 2차원 배열이 생성되었습니다. 또는 18세와 동일합니다. 직접 순회하면 전체 배열이 매우 번거로울 것입니다. 이때 퍼지 쿼리를 수행하려면 PHP의 array_filter() 함수를 사용할 수 있습니다.

array_filter() 함수의 기능은 지정된 콜백 함수를 배열의 각 요소에 적용하고, 반환 결과가 true인 요소가 새로운 배열을 형성하는 것입니다. 콜백 함수를 사용하여 현재 요소가 조건을 충족하는지 확인할 수 있습니다. 다음은 array_filter() 함수를 사용하여 2차원 배열 퍼지 쿼리를 구현하는 예입니다.

function filterByAge($arr)
{
    return ($arr['age'] <= 18);
}

$result = array_filter($student, 'filterByAge');
print_r($result);
로그인 후 복사

이 예에서는 학생의 나이가 같거나 작을 때 학생을 반환하는 filterByAge라는 콜백 함수를 정의합니다. 18세 이상 정보. 마지막으로 array_filter() 함수를 사용하여 조건에 맞는 학생 정보를 2차원 배열에서 필터링한 후 그 결과를 화면에 출력합니다.

3. 2차원 배열 퍼지 쿼리 최적화

위의 예에서는 array_filter() 함수를 사용하여 퍼지 쿼리를 수행하는 방법을 보여 주지만 이 방법은 데이터 양이 많을 때 매우 느려집니다. 다른 방법으로 최적화할 수 있습니다.

$search_age = 18;
$result = array_filter($student, function ($arr) use ($search_age) {
    return ($arr['age'] <= $search_age);
});
print_r($result);
로그인 후 복사

이 예에서는 filterByAge라는 함수 대신 익명 함수를 사용합니다. 또한 use 키워드를 사용하여 $search_age 변수를 익명 함수에 전달했습니다. 이 방법은 약간 더 복잡할 수 있지만 이 접근 방식을 사용하면 쿼리 속도를 높일 수 있습니다.

4. 요약

PHP에서는 2차원 배열의 사용이 매우 일반적입니다. 2차원 배열에서 한정된 정보를 쿼리해야 할 경우 array_filter() 함수를 사용하여 퍼지 쿼리를 수행할 수 있습니다. 익명 함수와 use 키워드를 사용하면 쿼리 속도가 향상되지만 코드가 약간 더 복잡해질 수 있습니다. 이 기사가 PHP에서 2차원 배열 퍼지 쿼리를 구현하는 방법을 이해하는 데 도움이 되기를 바랍니다.

위 내용은 PHP에서 2차원 배열의 퍼지 쿼리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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