2023年2月

PHP base64 转文件输出

/** base64转文件输出
 * @param String $base64_data base64数据
 * @param String $file        要保存的文件路径
 * @return boolean
 */
function base64ToFile(string $base64_data, string $file): bool
{
    if (!$base64_data || !$file) {
        return false;
    }
    return file_put_contents($file, base64_decode($base64_data), true);
}

PHP 文件转base64输出

/** 文件转base64输出
 * @param String $file 文件路径
 * @return String base64 string
 */
function fileToBase64(string $file): string
{
    $base64_file = '';
    if (file_exists($file)) {
        $mime_type = mime_content_type($file);
        $base64_data = base64_encode(file_get_contents($file));
        $base64_file = 'data:' . $mime_type . ';base64,' . $base64_data;
    }
    return $base64_file;
}

PHP把二维数组按照某个字段分组


/**
 * 把二维数组按照某个字段分组
 *
 * @Author moming
 * @DateTime 2022-09-03
 * @param array $arr 二维数组
 * @param string $key 需要分组的key
 * @return array 分组结果 
 */
function array_group_by(array $arr, string $key): array
{
    $grouped = [];
    foreach ($arr as $value) {
        $grouped[$value[$key]][] = $value;
    }

    if (func_num_args() > 2) {
        $args = func_get_args();
        foreach ($grouped as $key => $value) {
            $parms = array_merge([$value], array_slice($args, 2, func_num_args()));
            $grouped[$key] = call_user_func_array('array_group_by', $parms);
        }
    }

    return $grouped;
}