>  기사  >  백엔드 개발  >  PHP의 array_filter() 함수 사용법 소개

PHP의 array_filter() 함수 사용법 소개

王林
王林원래의
2023-06-27 11:50:453396검색

PHP 프로그래밍에서 배열은 매우 일반적인 데이터 유형입니다. 배열 필터링 및 필터링은 일반적인 작업 중 하나입니다. 이때, PHP에서 제공하는 배열 함수 array_filter()를 이용하면 됩니다. 이 문서에서는 이 기능의 사용법을 소개하고 시연합니다.

1. array_filter() 함수의 기본 사용법

array_filter() 함수의 함수는 배열을 필터링하는 것입니다. 기본 구문은 다음과 같습니다.

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

그 중 $array 매개변수는 스크리닝 및 필터링할 배열이고 $callback 매개변수는 선택적 매개변수로 배열의 각 요소를 판단하는 콜백 함수를 지정하는 데 사용됩니다. 조건에 맞는 요소는 유지되고, 조건에 맞지 않는 요소는 삭제됩니다. $flag 매개변수도 필터링 방법의 규칙을 지정하는 데 사용되는 선택적 매개변수입니다. 즉, 총 4가지 규칙이 있습니다. :

  • ARRAY_FILTER_USE_KEY - 필터링 및 필터링을 위한 키 이름 사용을 지정합니다.
  • ARRAY_FILTER_USE_BOTH - 필터링 및 필터링을 위한 키 이름 및 키 값 사용을 지정합니다.
  • ARRAY_FILTER_USE_VALUE - 다음에 대한 키 값 사용을 지정합니다. 필터링 및 필터링
  • 0 - 필터링 및 필터링에 키 값 사용을 지정합니다(기본 옵션).

다음으로 매개변수에 대해 자세히 소개하겠습니다.

2. $array 매개변수에 대한 자세한 설명

이 매개변수는 필수 매개변수이며 필터링 및 필터링할 배열을 나타냅니다. 구체적인 사용법은 다음과 같습니다.

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr);
print_r($newArr); //输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

위 예에서 $arr는 필터링 및 필터링할 원본 배열이고, $newArr은 array_filter() 함수로 처리한 후 얻은 새 배열입니다. $callback 매개변수가 전달되지 않으면 $array의 "false"가 아닌 모든 요소가 유지되고 출력 결과는 원래 배열과 일치합니다.

3. $callback 매개변수에 대한 자세한 설명

$callback 매개변수는 선택사항입니다. 이 매개변수를 지정하지 않으면 함수는 기본적으로 다음 필터링 규칙을 사용합니다.

  • "false"가 아닌 모든 요소 유지 in $array ;
  • $array;
  • 에서 모든 "가짜" 요소를 삭제하고 유지된 요소를 재정렬하고 새 배열을 반환합니다.

$callback 매개변수가 지정된 경우 $callback은 배열의 각 요소가 스크리닝 또는 필터링 요구 사항을 충족하는지 확인하는 데 사용되는 콜백 함수여야 합니다.

콜백 함수는 처리할 요소인 매개변수를 수락한 다음 값을 반환해야 합니다. 반환된 값이 "true"이면 해당 요소가 요구 사항을 충족하므로 유지되어야 함을 의미합니다. 반환된 값이 "false"인 경우 요소가 요구 사항을 충족하지 않으므로 제거해야 함을 의미합니다.

콜백 함수의 기본 구문은 다음과 같습니다.

function callback_function($element) {
   // 进行一些处理,然后返回true或false
}

다음은 예입니다.

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr, function($element) {
   return $element > 2;
});
print_r($newArr); //输出:Array ( [2] => 3 [3] => 4 [4] => 5 )

위 예에서는 배열의 각 요소가 더 큰지 여부를 결정하는 데 사용되는 콜백 함수를 전달합니다. 2보다. 그렇다면 요소를 유지하고, 그렇지 않으면 요소를 삭제합니다. 처리 후에는 요소 3, 4, 5만 유지됩니다.

4. $flag 매개변수에 대한 자세한 설명

$flag 매개변수는 필터링 방법의 규칙을 지정하는 데 사용되는 선택적 매개변수이기도 합니다. 이 매개변수를 지정하지 않으면 기본적으로 "키-값 필터링" 규칙이 사용됩니다. 다음은 네 가지 규칙입니다.

  1. $flag = ARRAY_FILTER_USE_KEY

키 이름을 사용하여 필터링합니다. 예는 다음과 같습니다.

$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$newArr = array_filter($arr, function($key) {
   return $key == 'a' || $key == 'c';
}, ARRAY_FILTER_USE_KEY);
print_r($newArr); //输出:Array ( [a] => 1 [c] => 3 )

위 예에서 $flag 매개변수는 ARRAY_FILTER_USE_KEY로 설정됩니다. 이는 필터링 및 필터링에 키 이름만 사용된다는 의미입니다. 콜백 함수는 키 이름이 "a" 및 "c"인 요소를 유지하고 새 배열을 반환할 수 있습니다.

  1. $flag = ARRAY_FILTER_USE_BOTH

키 이름과 키 값을 사용하여 필터링하고 필터링하세요. 예는 다음과 같습니다.

$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$newArr = array_filter($arr, function($key, $value) {
   return $key == 'a' && $value == 1;
}, ARRAY_FILTER_USE_BOTH);
print_r($newArr); //输出:Array ( [a] => 1 )

위 예에서 $flag 매개변수는 ARRAY_FILTER_USE_BOTH로 설정됩니다. 이는 키 이름과 키 값이 모두 필터링 및 필터링에 사용된다는 의미입니다. 콜백 함수는 키 이름이 "a"이고 키 값이 1인 요소를 유지하고 새 배열을 반환할 수 있습니다.

  1. $flag = ARRAY_FILTER_USE_VALUE

필터링 및 필터링에 키 값을 사용하세요.

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr, function($value) {
   return $value % 2 == 0;
}, ARRAY_FILTER_USE_VALUE);
print_r($newArr); //输出:Array ( [1] => 2 [3] => 4 )

위 예시에서는 $flag 매개변수가 ARRAY_FILTER_USE_VALUE로 설정되어 있는데, 이는 필터링과 필터링에 키 값만 사용된다는 의미입니다. 콜백 함수는 짝수 요소를 유지하고 새 배열을 반환할 수 있습니다.

  1. $flag = 0

필터링 및 필터링에 키 값을 사용하도록 지정합니다(기본 옵션). 예를 들면 다음과 같습니다.

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr, function($value) {
   return $value > 2;
});
print_r($newArr); //输出:Array ( [2] => 3 [3] => 4 [4] => 5 )

위 예에서는 $flag 매개변수가 설정되지 않았습니다. 이는 기본적으로 필터링 및 필터링에 키 값이 사용된다는 의미입니다. 콜백 함수는 2보다 큰 요소를 유지하고 새 배열을 반환할 수 있습니다.

5. 요약

array_filter() 함수는 PHP에서 매우 일반적이고 실용적인 배열 함수로, 배열을 필터링하는 데 사용할 수 있습니다. 이 문서에서는 이 기능의 기본 사용법과 매개변수 설명을 자세히 소개하고 시연합니다. 본 글을 통해 이 함수의 기본 원리와 사용법을 숙지하고 실제 프로그래밍에서 유연하게 활용해보시길 바랍니다.

위 내용은 PHP의 array_filter() 함수 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.