美文网首页
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