PHP 배열에서 NULL, ”, ‘ ‘, 0, ‘0’ 값인 원소 삭제하기

PHP에서 배열 속의 값중 특별히 의미없는 값( NULL, ” – 빈문자열, ‘ ‘ – white-space, 0, ‘0’)을 삭제 하고 싶은 경우가 있습니다. 그럴때 간단하게 쓸 수 있는 함수가 뭐가 있는지 확인해 봤는데 쓸만한 것이 별로 없네요.

그중 가장 쓸만한 함수인 array_filter($array) 가 있었는데 white-space는 남아 있게 됩니다.

php코드

$my = array();
$my[] = null;
$my[] = 5.21;
$my[] = 425;
$my[] = null;
$my[] = "";
$my[] = 75;
$my[] = 0;
$my[] = "0";
$my[] = " ";

$my = array_filter($my);
var_dump($my);

결과

array(4) { [1]=>  float(5.21) [2]=>  int(425) [5]=>  int(75) [8]=>  string(1) " " }

그래서 필터 함수를 만들어 넣어 봤습니다.

php 코드

$my = array();
$my[] = null;
$my[] = 5.21;
$my[] = 425;
$my[] = null;
$my[] = "";
$my[] = 75;
$my[] = 0;
$my[] = "0";
$my[] = " ";

$my = array_filter($my, create_function( '$val', 'if (!$val || trim($val)=="") return false; return $val;' ));
var_dump($my);

결과

array(3) { [1]=>  float(5.21) [2]=>  int(425) [5]=>  int(75) }

PHP에서 익명 함수를 사용하려 했더니 5.3.0 버전부터 지원된다고 하네요. 익명 함수를 사용하면 코드가 더 간단해 질것 같습니다.

더 좋은 방법이 있으면 코멘트 부탁드립니다. ^^

Advertisements

Published by: benant

WEB PROGRAMMER. PHP, ASP, XML, Javascript, VBScript, PL/SQL, MySQL, Oracle. scrollads.co.kr 새로운 모바일 광고 서비스. trenue.com 시스탬 트래이딩 서비스. blogman.co.kr 블로그 운영 관리 서비스. creget.co.kr 해외 상품 구매대행. 핫딜 정보 제공 서비스. fgshop.co.kr - 독립형 쇼핑몰 솔루션.

카테고리 Web태그, , 댓글 한 개

One thought on “PHP 배열에서 NULL, ”, ‘ ‘, 0, ‘0’ 값인 원소 삭제하기”

  1. 감사합니다. 갓신입이라 더 좋은 방법을 알려드릴 능력이 안 되네요. 유용히 잘 쓰겠습니다.^^

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중