2017-05-26 171 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变量中。

相关问题