/** * @param callable $iterator * @return callable */ function array_map_key_dg($iterator) { return function () use($iterator) { $array = func_get_args(); $array = array_shift($array); return array_map_key($array, $iterator); }; }
/** * @param resource $resource * @param string $delimiter * @param string $enclosure * @param string $escape * @return array */ function res_to_csv_assoc($resource, $delimiter = ',', $enclosure = '"', $escape = '\\') { $ret = []; $header = fgetcsv($resource, 0, $delimiter, $enclosure, $escape); if (debug_assert($header !== false)) { while (true) { $row = fgetcsv($resource, 0, $delimiter, $enclosure, $escape); if ($row === false) { break; } else { $ret[] = array_map_key($row, function ($value, $key) use($header) { return $header[$key]; }); } } } return $ret; }