我正在用 Bash 编写脚本。
我的关联数组有问题,当我像这样在我的数组中放置一条记录时:
declare -A arr_list_people_name
我将文本放入循环关联数组的方式(将文本排序):
arr_list_people_name[$peopleId]+=$peopleName
我读取数组的方式:
for KEY in "${!arr_list_people_name[@]}"; do
# Print the KEY value
echo "Key: $KEY"
# Print the VALUE attached to that KEY
echo "Value: ${arr_list_people_name[$KEY]}"
done
与我记录的方式相比,我的列表顺序不同。但是,我希望找到与我在数组中记录它的方式相同的顺序(按值或键排序)。
您知道如何管理它吗?
最佳答案
您需要使用第二个索引数组按照您将键添加到 arr_list_people_name
的顺序存储键。
...
arr_list_people_name[$peopleId]+=$peopleName
arr_order+=("$peopleId")
...
for id in "${arr_order[@]}"; do
echo "Key: $id"
echo "Value: ${arr_list_people_name[$id]}"
done
关于arrays - 维护 bash 关联数组的插入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46054677/