[英]PHP - str_replace not working in multidimensional array
我有一个大数组。 这是我的数组的示例部分:
13 => [
'Discount' => '0.00'
'Total amount' => '50,00'
'Total Net' => '40,00'
]
14 => [
'Discount' => '0.00'
'Total amount' => '20,00'
'Total Net' => '16,00'
]
我需要将数字中的逗号转换为点。 '50,00'
需要变成'50.00'
。 有什么简单的方法可以做到这一点?
注意:我试过$myArray = str_replace(',', ".", $dataArray);
但这不起作用。
你必须遍历array
值的
foreach ($array as $key => $string) {
$array[$key] = str_replace(',', '.', $string);
}
由于它是一个多维数组,您需要循环嵌套子数组和引用值。
或者将子数组作为 str_replace 中的输入。 (u_mulder)
foreach($arr as &$val){
$val = str_replace(",",".", $val);
}
var_dump($arr);
您还可以在替换之前添加检查以查看值中是否有逗号。
不确定这是否会使它更快或更慢。
...
if(strpos($val, ",") !== false) $val = str_replace(",",".", $val);
...
我希望这能帮到您
array_walk_recursive(
$myarray,
function (&$value) {
$value = str_replace(',', '.', $value);
}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.