簡體   English   中英

PHP - str_replace 在多維數組中不起作用

[英]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);

https://3v4l.org/tSgSP

您還可以在替換之前添加檢查以查看值中是否有逗號。
不確定這是否會使它更快或更慢。

...
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM