유용한 함수 array_filter
(PHP 4 >= 4.0.6, PHP 5)
array_filter — Filters elements of an array using a callback function
배열의 각 원소들을 콜백 함수의 인자로 각각 넣어서 함수의 결과값이 true(1) 인것만 뽑아서 배열로 반환.
array array_filter ( array $input [, callback $callback ] )
예제
function odd($var){
// returns whether the input integer is odd, $var 가 홀수 일경우 1 을 반환, 짝수일 경우 0 을 반환
return($var & 1);
}
function even($var){
// returns whether the input integer is even, $var 가 짝수 일경우 true 를 반환, 홀수 일경우 false 를 반환
return(!($var & 1));
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(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
)
참고 - 콜백함수 란
간단하게 설명하면. 특정 함수 내에서 처리 과정 내에서 자동적으로 호출 되어 사용되는 함수
즉 array_filter 를 직접 구현해 보면
function array_filter_test($array, $function=''){
if (!is_array($array)) return Array();
$return = Array();
foreach($array as $k => $v){
if (!empty($function)) $result = call_user_func($function, $v);//여기서 콜백 함수가 사용됨
else $result = !empty($v);
if (!empty($result)) $return[$k] = $v;
}
return $return;
}
echo "Odd :\n";
print_r(array_filter_test($array1, "odd"));
echo "Even:\n";
print_r(array_filter_test($array2, "even"));
게시글 목록
| 번호 | 제목 |
|---|---|
| 28213 | |
| 31006 |
CSS
css가 충돌이 됬을때
4
|
| 7898 | |
| 7897 | |
| 19935 |
JavaScript
풀스크린 스크립트
|
| 7892 | |
| 7885 | |
| 31005 | |
| 28209 | |
| 7880 | |
| 7877 | |
| 7871 | |
| 7865 | |
| 7862 | |
| 7858 | |
| 7852 | |
| 19933 |
웹서버
vi 온라인 학습장
1
|
| 19931 |
jQuery
강력한 무료 멀티 업로더...
1
|
| 19928 | |
| 19927 | |
| 31003 |
HTML
HTML5 자바스크립트 API
1
|
| 19920 |
기타
P3P 규약의 이해
6
|
| 28206 | |
| 19918 | |
| 28200 | |
| 7850 | |
| 19916 | |
| 28180 | |
| 28165 | |
| 19911 | |
| 7842 | |
| 7838 | |
| 7830 | |
| 7818 | |
| 28150 | |
| 19906 |
PHP
외부이미지 썸네일 만들기
5
|
| 19905 |
웹서버
퍼미션 계산기-아주 좋습니다.
|
| 19903 |
JavaScript
화면전체에 눈 내리는 효과
1
|
| 19901 |
PHP
외부이미지 서버에 저장하기
1
|
| 19900 |
PHP
유튜브 api 사용하기
|
| 28145 | |
| 7815 | |
| 31002 | |
| 7803 | |
| 7799 | |
| 7785 | |
| 19898 | |
| 7780 | |
| 7779 | |
| 7777 | |
| 7776 | |
| 7775 | |
| 7758 | |
| 19893 | |
| 19892 | |
| 19891 | |
| 20850 |
도로명주소
다음 우편번호 api
2
|
| 19885 | |
| 7752 | |
| 7747 | |
| 7738 | |
| 19883 |
JavaScript
자바스크립트로 오버로딩 구현하기
1
|
| 7735 | |
| 28139 | |
| 7734 | |
| 7731 | |
| 7725 | |
| 7717 | |
| 19879 | |
| 7715 | |
| 7710 | |
| 19858 | |
| 7709 | |
| 7703 | |
| 28134 | |
| 28129 | |
| 7694 | |
| 7690 | |
| 28125 | |
| 7672 | |
| 7660 | |
| 28111 | |
| 19857 | |
| 19856 |
MySQL
사이트 관리자 비밀번호 재설정하기
|
| 7658 | |
| 28106 | |
| 28098 | |
| 7655 | |
| 28095 | |
| 7651 | |
| 19851 | |
| 7646 | |
| 19850 | |
| 24661 | |
| 28089 | |
| 7633 | |
| 7623 | |
| 28087 | |
| 28085 | |
| 7620 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기