2013-11-27 117 views
0

我是一個PHP noob。我無法弄清楚如何將字符串中的數字列表轉換爲純整數。將數字轉換爲純整數

這是確切的字符串我有(!):

" 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()功能:

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

一旦你讓他們在一個數組,因爲PHP是弱類型,你可以用它們作爲整數或字符串。尾隨,可能會導致問題,因此您可能需要將其刪除。

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

修剪()將清除出從字符串的開頭和末尾的所有逗號和空格, 爆炸將通過逗號在陣列單獨字符串分開的字符串,如PHP對待數字串相同數字,這將是正確的:

$integerArray[0] + 30 == 100 
0

第一:通過使用

$string = str_replace(' ', '', $string);

然後刪除所有空格,分割字符串到每個元素:

$featureIDs = explode(',', $string);

最後,把所有字符串轉換爲整數:

array_walk($featureIDs , 'intval');

+0

這會輸出「Bool(True)」: <? $ pages =「70,51,53,」?> <? $ string = str_replace('','',$ pages); ?> <? $ numbers = explode(',',$ string); ?> <?$ featuredIDs = array_walk($ numbers,'intval'); ?> – 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" 
}