2017-05-26 151 views
2

我應該怎麼做這個數組值,以字符串形式轉換字符串數組爲int

Array 
(
    [0] => ["1","2"] 
    [1] => ["5"] 
) 

轉換成int形式

Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 5 
) 

是否複雜?任何人都可以幫忙

+1

所以只是要清楚:是你的輸入:'Array(...)'一個字符串還是你只是在談論數組內的值? – Rizier123

+2

你有什麼嘗試?幾行PHP將做 – Raptor

+1

我猜'array_map('intval',$ array)'會在這裏幫助。 – modsfabio

回答

0

你只需要遍歷數組的兩層。

$input=[["1","2"],["5"]]; 

foreach($input as $a){ 
    foreach($a as $v){ 
     $result[]=+$v; // make integer 
    } 
} 
var_export($result); 
3

試試這個:

$array = [ 
    ["1", "2"], 
    ["5"], 
]; 

$newArray = []; 
foreach ($array as $rowArr) { 
    foreach ($rowArr as $str) { 
     $newArray[] = intval($str); 
    } 
} 
var_dump($newArray); 

這將返回:

array (size=3) 
    0 => int 1 
    1 => int 2 
    2 => int 5 

這是通過迭代$array,然後遍歷$array的子元素($rowArr)和之後加入每個元素$newArray在其上運行intval

3

使用array_reduce

$a = Array 
(
    0=> ["1","2"], 
    1=> ["5"] 
); 
$r = array_reduce($a, 'array_merge', array()); 
print_r($r); 

結果:

Array ([0] => 1 [1] => 2 [2] => 5) 
4

可以使用array_map解析字符串,int和array_reducearray_merge加入陣列

$data = Array(["1","2"],["5"]); 
$result = array_map('intval', array_reduce($data, 'array_merge', array())); 
print_r($result); 
0

另一種方法:創建closurecasts變量將其插入並附加到數組中。

$appendInt = function($x) use (&$result) { $result[] = (int) $x; }; 
// reference to result array^ append to result^  ^cast to int 

它應用到你與array_walk_recursive多維數組的每一個元素。

array_walk_recursive($your_array, $appendInt); 

int的平面陣列將在$result變量中。

相關問題