PHP-str_replace在多维数组中不起作用

时间:2019-03-26 12:49:10

标签: php

我的阵列很大。这是我数组的一个示例部分:

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);,但这不起作用。

3 个答案:

答案 0 :(得分:1)

您必须遍历array 值的

foreach ($array as $key => $string) {
    $array[$key] = str_replace(',', '.', $string);
}

答案 1 :(得分:1)

由于它是多维数组,因此需要循环嵌套嵌套子数组和值,以供参考。
或者将子数组作为str_replace中的输入。 (u_mulder)

foreach($arr as &$val){
    $val = str_replace(",",".", $val);
}

var_dump($arr);

https://3v4l.org/tSgSP

在替换之前,您还可以添加检查以查看值中是否包含逗号。
不确定是否会更快或更慢。

...
if(strpos($val, ",") !== false) $val = str_replace(",",".", $val);
...

答案 2 :(得分:1)

希望这对您有帮助

array_walk_recursive(
    $myarray,
    function (&$value) {
        $value = str_replace(',', '.', $value);
    }
);