在php中将字符串数组转换为整数数组

时间:2015-09-07 09:38:08

标签: php arrays

我有一个数组:

$TaxIds=array(2) { [0]=> string(1) "5" [1]=> string(2) "10" } 

我需要转换为:

$TaxIds=array(2) { [0]=> int(5) [1]=> int(10) } 

简单的方法???

9 个答案:

答案 0 :(得分:10)

@george答案的简化版本是:

$TaxIds = array_map('intval', $TaxIds);

更多信息,位于array_map

尽管这个问题是很久以前提出的,但对某人可能有用

答案 1 :(得分:6)

您可以使用array_map

$TaxIds = array_map(function($value) {
    return intval($value);
}, $TaxIds);

答案 2 :(得分:1)

使用array_map

的简单解决方案
$TaxIds=array_map(function ($v) {return (int)$v;},$TaxIds);

答案 3 :(得分:0)

array_walk($array, function(&$value, &$key) {
    settype($value, "integer");
});

答案 4 :(得分:0)

你可以循环它

for($i = 0; $i < count($TaxIds);$i++) {
    $TaxIds[$i] = (int) $TaxIds[$i];
}

答案 5 :(得分:0)

试试这个:

$TaxIds = ["5", "10"];
$TaxIds = array_map(function($elem) { return intval($elem); }, $TaxIds);
var_dump($TaxIds);

var_dump输出:

array(2) { [0]=> int(5) [1]=> int(10) }

答案 6 :(得分:0)

这个问题有很多解决方案。其中一些已经发布。您可以在foreach中使用另一个解决方案。

 foreach($TaxIds as &$taxId) {
    $taxId = intval($taxId);
 }

但是,我认为您不需要将其转换为整数。 PHP将检测您是否要进行数值运算并动态转换它。

答案 7 :(得分:0)

$TaxIds = array( "1" ,"5", "2" ,"10");
$TaxIds = array_map(function($arr) {
    return intval($arr);
}, $TaxIds);

var_dump($TaxIds);

输出

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

答案 8 :(得分:-3)

你可以试试这个:

$arr = array("1", "2");
$my = json_encode($arr, JSON_NUMERIC_CHECK);
$dec = json_decode($my, true);
var_dump($dec);

输出:array(2) { [0]=> int(1) [1]=> int(2) }

或者,正如其他人所建议的那样,您可以使用array_map

$arr = array("1", "2");
$arr = array_map(function($value) {
    return intval($value);
}, $arr);
var_dump($arr);

输出:array(2) { [0]=> int(1) [1]=> int(2) }

修改 如果您期望数组中的实际字符串,请使用以下命令:

$arr = array("1", "2");
$arr = array_map(function($value) {
       return is_numeric($value) ? intval($value) : $value
}, $arr);