2012-10-19 3 views
2

나는, 나는이 기능을 폭발 사용하여 문자열 변수를 분할 문제 싶어했지만 한계가 다음 값으로 다음 문자열 변수를 상상할 폭발 기능을 사용 : 폭발 (",", $ 데이터), 출력은 다음과 같습니다사용 폭발() 함수

array(
     [0] => 3, 
     [1] => 18, 
     [2] => 'My name is john, 
     [3] => i like to play piano' 
    ); 

내 목표는 'chatacters 사이에있는 사람을 제외 쉼표 (,)로 변수 $ 데이터를 분할하는 것입니다.

array( [0] => 3, [1] => 18, [2] => 'My name is john, i like to play piano' );

누구든지이 작업을 수행 할 수 있다고 말해 주시면 감사하겠습니다.

+0

: 폭발 (",", $ 데이터를, 3); else str_getcsv() –

답변

8

이것은 CSV 데이터와 유사합니다. str_getcsv을 사용하여이를 구문 분석 할 수 있습니다.

array(3) { 
    [0] => 
    string(1) "3" 
    [1] => 
    string(3) " 18" 
    [2] => 
    string(12) "My name is john, i like to play piano" 
} 

array_map를 사용하여, 역시 어레이 요소의 각각에 trim을 적용 할 수있다 :

var_dump(str_getcsv("3, 18, 'My name is john, i like to play piano'", ',', "'")); 

가 발생한다 참고로 str_getcsv() 함수를 사용할 수

$string = "3, 18, 'My name is john, i like to play piano'"; 
var_dump(array_map('trim', str_getcsv($string, ',', "'"))); 
5

:

$data = "3, 18, 'My name is john, i like to play piano'"; 
$pieces = str_getcsv($data, ',', "'"); 

함수의 첫 번째 인수는 분할 할 문자열입니다.

두 번째 인수는 분리해야하는 구분 기호입니다.

세 번째 인수는 첫 번째 인수 내에서 쌍으로 사용 된 경우 (unsescaped) 단일 쌍의 문자 사이에 구분 기호를 효과적으로 무시하는 단일 문자입니다.

6

사용 : str_getcsv

데이터가 항상 동일한 구조가있는 경우
// set the delimiter with ',', and set enclosure with single quote 
$arr = str_getcsv ($data, ',', "'");