2014-10-21 5 views
1

문자열 구분 기호를 배열의 문자로 지정할 수있는 방법이 있습니까? 예를 들어 :주어진 배열의 모든 문자에서 PHP가 폭발합니다.

$delimiter = range("a","z"); 
$str = "103a765g678d6f76h"; 
$newstr = $explode($delimiter, $str); 

$newstr의 결과 인 [103,765,678,6,76]

나는이 작업을 수행하는 방법에 구글에 아무것도 찾을 수없고 나 자신

+0

내가 TBH이 매우 필요하다 preg_split 생각하지만, 당신은 꽃 봉오리에 가장 적합한 것을 사용하지 마십시오. –

답변

3

당신은 preg_split를 사용할 수 있으며 정규 표현식은 당신이 원하는 것을 달성하기 위해.

implode()은 먼저 배열에서 원하는 문자를 range()해야하는 경우에만 필요합니다. 배열 요소를 연결하여 문자열을 만듭니다.

$delimiter = range("a","z"); 

$chars = implode($delimiter); 
$str = "103a765g678d6f76h"; 
$newstr = preg_split("/[$chars]+/", $str, -1, PREG_SPLIT_NO_EMPTY); 

Demo

+0

감사합니다. 이것은 한 줄로 내 문제를 해결합니다! – Bobdinator

+0

@Bobdinator 도움이 된 것을 기쁘게 생각합니다. – George

1

사용이

function multiexplode ($delimiters,$string) { 

    $ready = str_replace($delimiters, $delimiters[0], $string); 
    $launch = explode($delimiters[0], $ready); 
    return $launch; 
} 
$delimiter = range("a","z"); 
    $str = "103a765g678d6f76h"; 

$text = "here is a sample: this text, and this will be exploded. this also | this one too :)"; 
$newstr = multiexplode($delimiter ,$str); 

print_r($newstr); 
아무것도 생각할 수
1

데이터를 살펴보고 preg_replace를 사용하여 문자 범위를 단일 구분 문자로 대체하십시오 배우. 그런 다음 수정 된 문자열을 분해하십시오.

0

PHP 폭발 페이지에서 이것은 매우 잘 작동 할 것입니다 ... 글자로 제한하지 않습니다.

function multiexplode ($delimiters,$string) { 

    $ready = str_replace($delimiters, $delimiters[0], $string); 
    $launch = explode($delimiters[0], $ready); 
    return $launch; 
} 

$text = "here is a sample: this text, and this will be exploded. this also | this one too :)"; 
$exploded = multiexplode(array(",",".","|",":"),$text); 

구분 기호는 배열이어야합니다.

on the PHP site 더 읽기 ...

+0

그러면 범위를 사용하여 등등에 대해 구분 기호 배열을 만들 수 있습니다. –

-1

예 사용 :

preg_split() 

delimiter = range("/a-z/"); 
$str = "103a765g678d6f76h"; 
$newstr = preg_split($delimiter, $str); 
+0

['preg_split()'] (http://php.net/manual/en/function.preg-split.php)는 정규 표현식을 배열이 아니라'pattern'으로 받아들입니다 ... – War10ck

+0

그래. $ delimeter를 정규식으로 변경하십시오. –