Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP를 사용하여 문자열을 폭발시킬 때 모든 빈 값을 제거하려면 어떻게 해야 합니까?

<시간/>

array_filter() 또는 preg_split()의 PREG_SPLIT_NO_EMPTY 옵션은 문자열이 분해될 때 문자열에서 빈 값을 제거하는 데 사용할 수 있습니다. -

예시

<?php
$_POST['tag'] = ",abc,defg,,,hijk,lmnop,,0,,";
echo "--- version 1: array_filter ----\n";
// note that this also filters "0" out, since (bool)"0" is FALSE in php
// array_filter() called with only one parameter tests each element as a boolean value
$tags = array_filter( explode(",", $_POST['tag']) );
var_dump($tags);
echo "--- version 2: array_filter/strlen ----\n";
// this one keeps the "0" element
// array_filter() calls strlen() for each element of the array and tests the result as a boolean value
$tags = array_filter( explode(",", $_POST['tag']), 'strlen' );
var_dump($tags);
echo "--- version 3: PREG_SPLIT_NO_EMPTY ----\n";
$tags = preg_split('/,/', $_POST['tag'], -1, PREG_SPLIT_NO_EMPTY);
var_dump($tags);
 

출력

이것은 다음과 같은 출력을 생성합니다 -

--- version 1: array_filter ---- array(4) { [1]=> string(3) " abc " [2]=> string(4) " defg " 
[5]=> string(4) "hijk" [6]=> string(5) "lmnop" } --- version 2: array_filter/strlen ---- array(5) 
{ [1]=> string(3) "abc" [2]=> string(4) "defg" [5]=> string(4) "hijk" [6]=> string(5) "lmnop" [8]=> 
string(1) "0" } --- version 3: PREG_SPLIT_NO_EMPTY ---- array(5) { [0]=> string(3) "abc" [1]=> 
string(4) "defg" [2]=> string(4) "hijk" [3]=> string(5) "lmnop" [4]=> string(1) "0" }