I need to loop over an associative array and drain the contents of it to a temp array (and perform some update to the value).
The leftover contents of the first arra
Copying associative arrays is not directly possible in bash. The best solution probably is, as already been pointed out, to iterate through the array and copy it step by step.
There is another solution which I used to pass variables to functions. You could use the same technique for copying associative arrays:
# declare associative array
declare -A assoc_array=(["key1"]="value1" ["key2"]="value2")
# convert associative array to string
assoc_array_string=$(declare -p assoc_array)
# create new associative array from string
eval "declare -A new_assoc_array="${assoc_array_string#*=}
# show array definition
declare -p new_assoc_array