PHP 多维数组数字格式 returns A

PHP Multidimensional array number formatting returns A

我对数组元素的数字格式设置有疑问。无论元素值如何,它总是 returns 一个“A”字母。

$tab = array_map(function ($string) {
    return preg_replace_callback( "/[0-9]+/", function ($matches) {
        return number_format($matches[0], 2, ',', ' ');
    }, $string);
}, $array);

我正在用地址 $tab['VII']['B']['podatek']['PTUG'] 调用该值 这是数组的一部分:

$array = array(
        ...

        "VII" => array(
            ...
            "B" => array(
                ...
                "podatek" => array(
                    ...
                    "PTUG" => "789456123",

我也在将 tcpdf 与此文件一起使用,如果这会造成麻烦。我需要的是在适当的字段中调用特定的数组元素并将它们转换为:123 123,45 数字格式。

另外,需要将日期从 yyyy-mm-dd 格式化为 dd-mm-yyyy 并添加“r”。在日期之后。

您可以通过数组使用 array_walk_recursive() 到 运行。在回调中,添加不同的检查以修改每种情况下的值。

array_walk_recursive($array, function (&$val) {
    // Format integers
    if (filter_var($val, FILTER_VALIDATE_INT)) {
        $val = number_format($val, 2, ',', ' ');
    // Format dates
    } elseif (preg_match('/^\d{4}-\d{2}-\d{2}$/', $val)) {
        $parts = explode('-', $val);
        $val = implode('-', array_reverse($parts));
    }
});