Php 我正在读取csv文件,这个函数中的array_map()函数是什么?

Php 我正在读取csv文件,这个函数中的array_map()函数是什么?,php,csv,multidimensional-array,array-map,Php,Csv,Multidimensional Array,Array Map,在PHP中,我想使用以下函数读取“.CSV”文件 function csv_to_array($filename='a.txt', $header_exist=true, $delimiter="\t") { if(!file_exists($filename) || !is_readable($filename)) return FALSE; $header = NULL; $data = array(); if (($handle = fo

在PHP中,我想使用以下函数读取“.CSV”文件

function csv_to_array($filename='a.txt',  $header_exist=true, $delimiter="\t")
{
    if(!file_exists($filename) || !is_readable($filename))
        return FALSE;

    $header = NULL;
    $data = array();
    if (($handle = fopen($filename, 'r')) !== FALSE)
    {
        while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE)
        {
            if($header_exist)
            {
                if(!$header)
                    $header = array_map('trim', $row);
                else
                    $data[] = array_combine($header, $row);
            }
            else
                $data[] = $row;
        }
        fclose($handle);
    }
    return $data;
}
我对
array\u map()
函数有点困惑。我认为应该将列名映射到每个属性,那么如何获取和显示eacg属性呢

谢谢大家!

在PHP中,
array\u映射(function\u name,array)
函数将
array
的每个值发送到
function\u name()
并返回一个新的
数组

在您的例子中,
$header
包含由
分隔的列名的
字符串。这意味着
array\u map()
函数将它们转换为
数组

希望您能理解。

打开手册页,您可以看到:

数组映射-将回调应用于给定数组的元素

因此,您有一个回调,它是
trim
(一个核心php函数)和一个数组,它是
$row
。因此,函数
trim
现在应用于
$row
的每个元素

因此,它相当于:

$header = [];
foreach ($row as $item) {
    $header[] = trim($item);
}