2013-11-27 7 views
0

나는 PHP 멍청하다. 문자열의 숫자 목록을 순수한 정수로 변환하는 방법을 찾지 못했습니다. (!) 내가 가진 정확한 문자열이숫자가있는 문자열을 순수한 정수로 변환

:

70, 51, 53 

은 내가 갖고 싶어하는 것은의 출력입니다 :

" 70, 51, 53, " 

가 변환 후 어떻게 보일지 있다는

<? $featureIDs = array(70, 51, 53) ?> 

미리 도움을 주셔서 감사합니다.

+0

은 쉼표로 구분 된 문자열을 요청합니다. 어느 것이 잘못 되었나요? 지금까지 작성한 PHP 코드는 무엇입니까? –

+0

원래 질문을 수정했습니다! 당신의 노력에 감사드립니다! – christophe

답변

1

내가 잘 모르겠지만, 만약 그들이 다음이 작동합니다 (이 아닌 것은 빼내야 숫자 또는 쉼표로 입력).

$string = '" 70, 51, 53, "'; 
$output = explode(',',preg_replace("/[^0-9,]/", "", $string)); 
foreach($output as $k => $v) { 
    if (!$v) { 
     unset($output[$k]); 
    } 
} 
var_dump($output); 
+0

""는 문자열의 일부가 아닙니다! 고맙습니다! – christophe

+0

좋아, 잘 작동 할 것입니다. –

+0

그게 바로 고마워요! – christophe

0

를 체크 아웃 explode() 기능 : PHP가 느슨한 타입 때문에

$numbers = explode(',', '70, 51, 53'); 

당신이 배열을 일단

, 당신은 정수 또는 문자열로 사용할 수 있습니다. 후행 ,은 문제가 발생할 수 있으므로 제거하는 것이 좋습니다.

0
$ a = " 70, 51, 53, "; 
$integerArray = explode(',', trim($a , " ,")); 

트림() 문자열의 시작과 끝에서 모든 쉼표와 공백을 지 웁니다, 은 PHP가 같은 번호와 같은 숫자 문자열을 취급으로 배열 별도의 문자열을 쉼표로 문자열을 분리 것 폭발이 의지 잘 될 : 귀하의 예제 입력에 따옴표가 정말 문자열의 일부가 될 수밖에 없었던 경우

$integerArray[0] + 30 == 100 
0

첫째

$featureIDs = explode(',', $string); 마지막

는 정수로 모든 문자열을 설정 :이어서

$string = str_replace(' ', '', $string);을 사용하여 모든 스페이스 제거는 각 요소에 스트링을 분할

array_walk($featureIDs , 'intval');

+0

그러면 "Bool (True)"이 출력됩니다. christophe

+0

아니요, $ featureIDs에는 array_walk에서 참조를 사용하므로 정수가 포함됩니다. 내 대답 –

+0

에 이름을 변경하면 문자열을 정수로 변환 할 필요가 없으며 php는 문자열을 정수로 이미 해석합니다. – Benedictus

0

preg_match_all()을 사용하여 모든 "자릿수"를 가져옵니다.

$input = " 70, 51, 53, "; 

$ids = array(); 
if (preg_match_all('(\d+)', $input, $matches)) { 
    $ids = $matches[0]; 
} 

var_dump($ids); 

출력 : 제목은 당신이 순수한 정수와 질문을 원하는 말한다

array(3) { 
    [0]=> 
    string(2) "70" 
    [1]=> 
    string(2) "51" 
    [2]=> 
    string(2) "53" 
}