美文网首页
php array_column 切换成 go

php array_column 切换成 go

作者: Best博客 | 来源:发表于2020-12-25 13:45 被阅读0次

php中取二维数组指定 column 进行拼接。 array_column()

// SliceColumnJoin 将slice 中struct 的任何一列 取出并拼接.
func SliceColumnJoin(data interface{}, column string, sep string) (str string) {
    var s strings.Builder
    va := reflect.ValueOf(data)
    if va.Kind() == reflect.Ptr {
        va = va.Elem()
    }
    if va.Kind() == reflect.Slice {
        for i := 0; i < va.Len(); i++ {
            elem := va.Index(i)
            if elem.Kind() == reflect.Ptr {
                elem = elem.Elem()
            }
            if elem.Kind() == reflect.Struct {
                elemTy := elem.Type()
                num := elem.NumField()
                for j := 0; j < num; j++ {
                    name := elemTy.Field(j).Name
                    if name == column {
                        if elem.Field(j).Kind() != reflect.String {
                            return
                        }
                        s.WriteString(elem.Field(j).String())
                        s.WriteString(sep)
                    }
                }
            }
        }
    }
    str = strings.Trim(s.String(), sep)
    return
}

相关文章

网友评论

      本文标题:php array_column 切换成 go

      本文链接:https://www.haomeiwen.com/subject/urbbnktx.html