遍历关联数组组
Looping over associative array groups
我有一个关联数组asc
,其键采用以下形式
asc[1-0]=dlc[0]
asc[2-1]=dlc[1]
asc[3-2]=dlc[2]
asc[1-3]=dlc[3]
asc[2-4]=dlc[4]
asc[3-5]=dlc[5]
asc[1-6]=dlc[6]
asc[2-7]=dlc[7]
asc[3-8]=dlc[8]
asc[1-9]=dlc[9]
asc[2-10]=dlc[10]
asc[3-11]=dlc[11]
asc[1-12]=dlc[12]
asc[2-13]=dlc[13]
...
我想在调用函数时按第一个数字对元素进行分组 fn
。
loop over i
fn asc[i-*] $ pass all elements with i as first number
您必须遍历关联数组的键并构建与所需键子集关联的值的普通数组。
for i in 1 2 3; do
group=()
for k in "${!asc[@]}"; do
[[ $k = $i-* ]] || continue
group+=("${asc[$k]}")
done
fn "${group[@]}"
done
我有一个关联数组asc
,其键采用以下形式
asc[1-0]=dlc[0]
asc[2-1]=dlc[1]
asc[3-2]=dlc[2]
asc[1-3]=dlc[3]
asc[2-4]=dlc[4]
asc[3-5]=dlc[5]
asc[1-6]=dlc[6]
asc[2-7]=dlc[7]
asc[3-8]=dlc[8]
asc[1-9]=dlc[9]
asc[2-10]=dlc[10]
asc[3-11]=dlc[11]
asc[1-12]=dlc[12]
asc[2-13]=dlc[13]
...
我想在调用函数时按第一个数字对元素进行分组 fn
。
loop over i
fn asc[i-*] $ pass all elements with i as first number
您必须遍历关联数组的键并构建与所需键子集关联的值的普通数组。
for i in 1 2 3; do
group=()
for k in "${!asc[@]}"; do
[[ $k = $i-* ]] || continue
group+=("${asc[$k]}")
done
fn "${group[@]}"
done