PHP - 콜백 함수를 사용하여 배열의 요소를 필터링합니다.
PHP 함수
요약
콜백 함수를 사용하여 배열의 요소를 필터링합니다.
함수 원형
array_filter ( array $array , callable|null $callback = null , int $mode = 0 ) : array
파라미터
-
$array
반복할 배열입니다.
-
$callback
사용할 콜백함수입니다.
-
$mode
콜백 함수에 전달할 인수입니다.
-
ARRAY_FILTER_USE_KEY
일 경우 값 없이 키만 전달됩니다.
-
ARRAY_FILTER_USE_BOTH
일 경우 키와 값이 전달됩니다.
-
아무것도 전달하지 않거나 0
을 전달하면 값만 전달됩니다.
설명
$array
반복할 배열입니다.
$callback
사용할 콜백함수입니다.
$mode
콜백 함수에 전달할 인수입니다.
ARRAY_FILTER_USE_KEY
일 경우 값 없이 키만 전달됩니다.
ARRAY_FILTER_USE_BOTH
일 경우 키와 값이 전달됩니다.
아무것도 전달하지 않거나 0
을 전달하면 값만 전달됩니다.
PHP 4.0.6 버전부터 제공됩니다.
배열의 각 값을 반복하여 콜백 함수에 전달합니다.
콜백 함수가 true
를 반환하면 배열의 현재 값이 결과 배열로 반환됩니다.
배열 키는 유지되며 배열이 인덱싱된 경우 키는 재정렬되지 않습니다.
결과 배열은 array_values()
함수를 사용하여 다시 인덱싱 할 수 있습니다.
필터링된 배열을 반환합니다.
PHP 8.0 버전부터 $callback
은 null
일 수 있습니다.
PHP 5.6 버전부터 $mode
상수에 ARRAY_FILTER_USE_KEY
와 ARRAY_FILTER_USE_BOTH
가 추가되었습니다.
콜백 함수에서 원본 배열이 변경된 경우 (예 : 요소 추가, 삭제 또는 설정 해제)이 함수의 동작은 보장할 수 없습니다.
예제 1
function odd($var)
{
// returns whether the input integer is odd
return $var & 1;
}
function even($var)
{
// returns whether the input integer is even
return !($var & 1);
}
$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
결과 1
Odd :
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Even:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
예제 2
$entry = [
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => '',
5 => '0',
6 => 0,
];
print_r(array_filter($entry));
결과 2
Array
(
[0] => foo
[2] => -1
)
예제 3
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function($k) {
return $k == 'b';
}, ARRAY_FILTER_USE_KEY));
var_dump(array_filter($arr, function($v, $k) {
return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
결과 3
array(1) {
["b"]=>
int(2)
}
array(2) {
["b"]=>
int(2)
["d"]=>
int(4)
}
참고
function odd($var)
{
// returns whether the input integer is odd
return $var & 1;
}
function even($var)
{
// returns whether the input integer is even
return !($var & 1);
}
$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
Odd :
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Even:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
예제 2
$entry = [
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => '',
5 => '0',
6 => 0,
];
print_r(array_filter($entry));
결과 2
Array
(
[0] => foo
[2] => -1
)
예제 3
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function($k) {
return $k == 'b';
}, ARRAY_FILTER_USE_KEY));
var_dump(array_filter($arr, function($v, $k) {
return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
결과 3
array(1) {
["b"]=>
int(2)
}
array(2) {
["b"]=>
int(2)
["d"]=>
int(4)
}
참고
$entry = [
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => '',
5 => '0',
6 => 0,
];
print_r(array_filter($entry));
Array
(
[0] => foo
[2] => -1
)
예제 3
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function($k) {
return $k == 'b';
}, ARRAY_FILTER_USE_KEY));
var_dump(array_filter($arr, function($v, $k) {
return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
결과 3
array(1) {
["b"]=>
int(2)
}
array(2) {
["b"]=>
int(2)
["d"]=>
int(4)
}
참고
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function($k) {
return $k == 'b';
}, ARRAY_FILTER_USE_KEY));
var_dump(array_filter($arr, function($v, $k) {
return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
array(1) {
["b"]=>
int(2)
}
array(2) {
["b"]=>
int(2)
["d"]=>
int(4)
}
참고
https://phpman.ml/array_filter
https://www.php.net/manual/en/function.array-filter.php
파이썬 코드
def array_filter(array, callback=None):
filter(callback, array)
관련 함수
def array_filter(array, callback=None):
filter(callback, array)
array_map
array_reduce
array_walk
개발 의뢰를 요청하시려면 먼저 FAQ를 읽어보시고, 적합하다고 판단하시면 [email protected]로 연락해 주세요.
Author And Source
이 문제에 관하여(PHP - 콜백 함수를 사용하여 배열의 요소를 필터링합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@instantcoderweb/PHP-콜백-함수를-사용하여-배열의-요소를-필터링합니다저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)