通常の二重配列のように機能する連想配列があります。
構造は [ [0,1], [0,1,2] ] のようになります。コード:
declare -A array
array[0,0]=0
array[0,1]=1
array[1,0]=0
array[1,1]=1
array[1,2]=2
array[0]とarray[1]の長さを取得するにはどうすればよいですか? この例では、2 と 3 です。
ありがとうございました。
PS重複を検索しようとしました。失敗。明確でない場合: 配列の長さがわかりません。
回答は、効率テストの後に選択されました。@RenaudPacalet の回答に基づく関数の例を次に示します。
function getLength() {
local k=$(eval "echo \${!$1[@]}")
local re="(\<$2,[0-9])"
echo $k | grep -Eo $re | wc -l
}
使用例:getLength array 1
この質問の場合は 3 を返します。
の使用$(eval "echo \${!$1[@]}")
は よりもはるかに遅いことに注意してください${!array[@]}
。