2013-11-22 2 views
0

나는 문자열 1,2,3,4,5PHP 문자열은

나는 PHP 배열로 변환에게있어 문제 - 어떤 이유로 인해 배열의 시작 부분에 공백을 추가합니다! 예를 들어 1 대신에 우리의 값은 1이고 그 앞에 공백이 있습니다.

왜 이런 일이 발생하며 어떻게 제거 할 수 있습니까?

+1

문자열의 시작 부분에 공백이 있습니까? '$ arr = explode (',', trim ($ myString));' – andrewsi

답변

1

문자열의 시작 부분에 공백이있을 가능성이 있습니다.

foreach ($arr as $value) 
{ 
    echo trim($value); 
} 

을 아니면 폭발 지점에서 사용할 수 있습니다 :

어쨌든, 당신은 trim()를 사용할 수있는 문자열이 처음이나 끝 부분에 공백이 포함 된 경우

$arr = explode(',', trim($myString)); 
+0

단지 메모. 코드의 'foreach' 루프는 실제로 값을 수정하지 않습니다. '$ value'를 참조로 전달해야합니다. –

+0

의견이 있으시면 'trim()'은 루프 안에서,'echo'의 바로 뒤에 있습니다 ... – BenM

+0

답의 첫 부분에서, 당신은 실제로 $ arr을 수정하지 않습니다 - 정돈 된 값을 출력하는 것뿐입니다. 이 코드를 사용하면 동일한 이전 문자열을'explode() '함수에 전달할 수 있으며 결과는 이전과 동일합니다. –

4

이 일어날 수 있습니다. explode() 함수는 문자열을 주어진 구분 기호로 분리하고 마술처럼 공백을 처리하지 않습니다.

$arr = explode(',', $myString); 
$arr = array_map('trim', $arr); 

또는 당신은 (상황에 따라, 또는 str_replace()) 정규 표현식을 사용하여 explode()을 사용하기 전에 공백을 대체 할 수있는 : 당신은 모든 배열 요소의 공백을 트리밍 array_map()을 사용할 수 있습니다

$myString = ' 1,2,3,4,5 '; 
$myString = preg_replace('/\s+/', '', $myString); 

이렇게하면 모든 공백 문자가 제거되고 문자열에는 숫자와 쉼표 만 포함됩니다 (원하는 것으로 가정).

+0

감사합니다 :) 날 array_map 사용 :) Logged – Darline