我有一个数组:
$TaxIds=array(2) { [0]=> string(1) "5" [1]=> string(2) "10" }
我需要转换成这个:
我需要将它转换成这样:
$TaxIds=array(2) { [0]=> int(5) [1]=> int(10) }
简单的方法???
@george的回答的简化版本如下:
$TaxIds = array_map('intval', $TaxIds);
更多信息请参见 array_map
虽然这个问题很久以前就被问了,但它可能对某些人有用
$TaxIds = array_map(function($value) {
return intval($value);
}, $TaxIds);
$TaxIds = array_map(fn($value) => intval($value), $TaxIds);
- John Linhart这个问题有很多解决方案。其中一些已经发布了。您可以使用foreach的另一个解决方案。
foreach($TaxIds as &$taxId) {
$taxId = intval($taxId);
}
然而,我认为你不需要将它转换为整数。PHP会检测到您是否要进行数字操作并动态转换它。
array_walk($array, function(&$value, &$key) {
settype($value, "integer");
});
你可以使用 for 循环
for($i = 0; $i < count($TaxIds);$i++) {
$TaxIds[$i] = (int) $TaxIds[$i];
}
试试这个:
$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) }
$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
$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);
array_map
的函数轻松实现。使用JSON序列化仍然是不必要的。 - Asad Saeeduddinreturn is_numeric($value) ? intval($value) : $value
@Criesto 返回 is_numeric($value) ? intval($value) : $value
- Asad Saeeduddin
$TaxIds[0] + $TaxIds[1]
将输出15。 - Abdul Rehman