我创建了一个关联数组,如下所示:
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]}]}