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

連想配列キーは与えられた順序で保存されません。この問題を解決する一般的な方法は、覚えたい順序でキーを保持する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]}]}

関連情報