我有一个数组:
$TaxIds=array(2) { [0]=> string(1) "5" [1]=> string(2) "10" }
我需要转换为:
$TaxIds=array(2) { [0]=> int(5) [1]=> int(10) }
简单的方法???
答案 0 :(得分:10)
答案 1 :(得分:6)
您可以使用array_map
$TaxIds = array_map(function($value) {
return intval($value);
}, $TaxIds);
答案 2 :(得分:1)
$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);