将数组字符串转换为int

时间:2017-05-26 07:37:42

标签: php arrays

我应该如何制作字符串形式的数组值

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

进入int形式

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

这很复杂吗?有人可以帮忙吗?

5 个答案:

答案 0 :(得分:4)

您可以使用MyArray Object ( [storage:ArrayObject:private] => Array ( [banana] => yellow [apple] => red [blueberry] => blue [orange] => orange ) ) 将字符串解析为int,将array_map解析为array_reduce以加入数组

array_merge

答案 1 :(得分: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来实现在它上面。

答案 2 :(得分: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 )

答案 3 :(得分:0)

您只需循环遍历阵列的两个层。

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

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

答案 4 :(得分:0)

另一种方法:创建一个closure casts个变量来整理并将它们附加到数组中。

$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);

整数的整数将位于$result变量中。