我用来自xml的数据填充数组。因此,数字以字符串形式出现,诸如“ n / a”之类的字符串也以字符串形式出现。然后,我需要将此数据作为float推送到mysql db列。我需要让数字浮动,但其他所有内容都应该为null而不是“ 0”,因为下面的大多数方法实际上都在这样做。
$array = [
"125.5",
85.5,
"n/a",
"0",
null
];
echo "floatval \n";
foreach($array as $item){
echo $item . ' -> ' . floatval($item) . "\n";
}
echo "type cast \n";
foreach($array as $item){
echo $item . ' -> ' . (float)$item . "\n";
}
此代码输出:
floatval
125.5 -> 125.5
85.5 -> 85.5
n/a -> 0
0 -> 0
-> 0
type cast
125.5 -> 125.5
85.5 -> 85.5
n/a -> 0
0 -> 0
-> 0
您是否有任何聪明的解决方案,而不是实际测试所有潜在领域?
假设您希望将数字字符串强制转换为浮点型,则is_numeric()
检查应该起作用:
$value = is_numeric($item) ? (float) $item : null;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句