2017-03-27 124 views
0

陣列我有一個字符串:轉換逗號分隔字符串INT爲int在PHP

'24','27','38' 

我想把它轉換成:

(
    [0] => 24 
    [1] => 27 
    [2] => 38 
) 

轉換:

array_map('intval',explode(',',$array)) 

得到:

Array 
(
    [0] => '24' 
    [1] => '27' 
    [2] => '38' 
) 

基本上,array_map在'24,27,38'的情況下工作,但不是在我的情況。

一種解決方案是遍歷數組,但我不想這樣做。我只能使用php函數實現上述功能嗎?

+2

你能解釋爲什麼你沒有在陣列上wan't循環? –

+0

你在數組映射之前使用了'str_replace'嗎? – Nawin

+0

@DouwedeHaan我認爲這將是昂貴的。 – learner

回答

1
$arr = explode (",", str_replace("'", "", $str)); 
    foreach ($arr as $elem) 
     $array[] = trim($elem) ; 
+0

我不想在數組上循環。 :) – learner

+0

這裏是必要的循環嗎?不應該有任何空白要修剪。 –

+0

在這個例子中,我看到了數字之間的空格。如果沒有空格,使用循環是沒有必要的 – diavolic

2

用下面的辦法:

$str = "'24','27','38'"; 
$result = array_map(function($v){ return (int) trim($v, "'"); }, explode(",", $str)); 

var_dump($result); 

輸出:

array(3) { 
    [0]=> 
    int(24) 
    [1]=> 
    int(27) 
    [2]=> 
    int(38) 
} 
+0

我不想遍歷數組。 :) – learner

+0

但你自己曾嘗試使用'array_map' – hassan

+0

@learner,你將不可避免地將每個項目轉換爲整數類型 – RomanPerekhrest

相關問題