BASH - 关联数组 - 获取最终元素中键的值

BASH - 关联数组 - 获取最终元素中键的值

我创建了一个关联数组,如下所示:

declare -A test_array

test_array[0,0]="1"
test_array[0,1]="A"
test_array[0,2]="11"
test_array[0,3]="AA"
test_array[1,0]="2"
test_array[1,1]="B"
test_array[1,2]="22"
test_array[1,3]="BB"

我想要做的是获取最终元素中键的值。在本例中,1 位于:

test_array[1,3]="BB"

有什么办法可以做到这一点吗?

谢谢

答案1

不幸的是,关联数组中没有“最终元素”。

答案2

关联数组键不按任何给定顺序保存。解决此问题的通常方法是使用第二个索引数组,以您想要记住的顺序保存键。例如一个数组x

declare -a x

test_array[0,0]="1" x[${#x[*]}]='0,0'
test_array[0,1]="A" x[${#x[*]}]='0,1'
...

${#x[*]}是数组的长度x,因此上面的每一行都在数组末尾添加一个新条目x(索引 0,然后是 1,...)。

然后,您可以使用该数组的最后一个条目(索引长度为 1)来获取键和值:

echo ${x[${#x[*]}-1]}
echo ${test_array[${x[${#x[*]}-1]}]}

相关内容