array

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 19, 2023 License: MIT Imports: 4 Imported by: 0

README

go-array

MIT licensed

介绍

基于 reflect 的应用,实现 go 语言 Array(Slice/Map) 常用工具函数,具体的函数方式下面有详细内容讲解。

安装
// github
go get github.com/lihao1988/go-array

// gitee
go get gitee.com/lihao1988/go-array

版本要求

Go 1.15 or above.

Array(Slice/Map) Functions

In(value, array interface{}) bool
// 用于检查Array(Slice/Map)中是否存在指定的值
value = "a"
dataMap := []string{"a", "b", "c"}
isExist := In(value, dataMap)
fmt.Println(isExist)
Keys(array interface{}, &keys interface{})
// 获取数组中所有的键名
dataMap := map[string]string{
    "a": "this is 'A'",
    "b": "this is 'B'",
}

var keys []string
Keys(dataMap, &keys)
fmt.Println(keys)
Values(array interface{}, &values interface{})
// 获取数组中所有的值
dataMap := map[string]string{
    "a": "this is 'A'",
    "b": "this is 'B'",
}

var values []string
Values(dataMap, &values)
fmt.Println(values)
Merge(&array interface{}, dArr ...interface{})
// 把一个或多个数组合并为一个数组
dataMap := map[string]string{
    "a": "this is 'A'",
    "b": "this is 'B'",
}

dataOne := map[string]string{
    "c": "this is 'C'",
}
dataTwo := map[string]string{
    "d": "this is 'D'",
}

Merge(&dataMap, dataOne, dataTwo)
fmt.Println(dataMap)
Unique(&array interface{})
// 删除数组中的重复值
dataMap := map[int]string{
    "a": "this is 'A'",
    "b": "this is 'B'",
    "a": "this is 'A'",
}
Unique(&dataMap)
fmt.Println(dataMap)
Column(&dest, input interface{}, columnKey, indexKey string)
// 返回输入数组中某个单一列的值
dataMap := map[string]map[string]string{
    "a": {"key": "a1", "value": "A"},
    "b": {"key": "b1", "value": "B"},
}

// key 使用子数组字段 'key',column 为子数组内容
dest := map[string]map[string]string{}
Column(&dest, dataMap, "", "key")
fmt.Println(dest)

//key 使用子数组字段 'key',column 使用子数组字段 'value'
dest := map[string]string{}
Column(&dest, dataMap, "value", "key")
fmt.Println(dest)

//key 为空则为 list,column 使用子数组字段 'value'
dest := []map[string]string{}
Column(&dest, dataMap, "value", "")
fmt.Println(dest)
Diff(&array interface{}, dArr ...interface{})
// 比较数组,返回差集(只比较键值)
dataMap := map[int]string{
    "a": "this is 'A'",
    "b": "this is 'B'",
	"c": "this is 'C'",
}

dataOne := map[int]string{
    "b": "this is 'B'",
    "d": "this is 'D'",
}

dataTwo := map[int]string{
    "c": "this is 'C'",
    "e": "this is 'E'",
}

Diff(&dataMap, dataOne, dataTwo)
fmt.Println("dataMap", dataMap)
Intersect(&array interface{}, dArr ...interface{})
// 比较数组,返回交集(只比较键值)
dataMap := map[int]string{
    "a": "this is 'A'",
    "b": "this is 'B'",
}

dataOne := map[int]string{
    "b": "this is 'B'",
    "d": "this is 'D'",
}

dataTwo := map[int]string{
    "c": "this is 'C'",
    "e": "this is 'E'",
}

Intersect(&dataMap, dataOne, dataTwo)
fmt.Println("dataMap", dataMap)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Column

func Column(dest, input interface{}, columnKey, indexKey string)

Column array column to be new array php array_column

func Diff

func Diff(d interface{}, dArr ...interface{})

Diff array Diff to d php array_diff

func In

func In(d interface{}, arr interface{}) bool

In check d is in 'arr' php in_array

func Intersect

func Intersect(d interface{}, dArr ...interface{})

Intersect array Intersect to d php array_intersect

func Keys

func Keys(d interface{}, keys interface{})

Keys get array keys php array_keys

func Merge

func Merge(d interface{}, dArr ...interface{})

Merge array merge to d php array_merge

func Unique

func Unique(d interface{})

Unique array data de-duplication php array_unique

func Values

func Values(d interface{}, values interface{})

Values get array values php array_values

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL