在常规数组中,我可以使用 (i)
或 (I)
来搜索与给定值匹配的条目的索引(从头开始的第一个匹配项或数组的末尾,分别):
list=(foo bar baz)
echo $list[(i)bar]
# => 2
这不适用于关联数组,获取找到值的(其中一个)键:
declare -A hash=([foo]=bar [baz]=zoo)
echo $hash[(i)bar]
# => no output
除了手动循环之外,还有其他机制可以做到这一点吗?
最佳答案
(r)
下标标志与 (k)
参数标志相结合应该给你
你想要什么:
declare -A hash=([foo]=bar [baz]=zoo)
echo ${(k)hash[(r)bar]}
# => foo
关于 (r)
下标标志的手册页部分只谈到返回
重视并忽略这种用法,所以很难找到。
关于zsh - 在 zsh 关联数组中找到与值匹配的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63724078/