就像array_uniquephp 的函数一样:$input = array("a" => "green", "red", "b" => "green", "blue", "red");$result = array_unique($input);print_r($result);输出:Array( [a] => green [0] => red [1] => blue)谢谢!
1 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
没有内置的方法可以做到这一点,因此您需要自己制作一个函数。
如果要制作通用功能,则必须使用reflect. 如果您有特定的地图类型,那么您可以更轻松地制作它:
package main
import (
"fmt"
)
func Unique(m map[string]string) map[string]string {
n := make(map[string]string, len(m))
ref := make(map[string]bool, len(m))
for k, v := range m {
if _, ok := ref[v]; !ok {
ref[v] = true
n[k] = v
}
}
return n
}
func main() {
input := map[string]string{"a": "green", "0": "red", "b": "green", "1": "blue", "2": "red"}
unique := Unique(input)
fmt.Println(unique)
}
可能的输出
地图[a:绿色 0:红色 1:蓝色]
笔记
由于映射不维护顺序,因此您无法知道哪些键将被删除。
- 1 回答
- 0 关注
- 275 浏览
添加回答
举报
0/150
提交
取消