Function: merge

Merge 2 arrays

USAGE: merge arrayname1 arrayame2 joinarray

merge()
{      
  local a1=${1:?Array name required} a2=${2:?Array name required}
  local j=${3:?Array name required} b1 b2 new
  eval "b1=( \"\${$a1[@]}\" )"
  eval "b2=( \"\${$a2[@]}\" )"
  

Set num to the number of elements in the larger array

  num=$(( ${#b1[@]} > ${#b2[@]} ? ${#b1[@]} : ${#b2[@]} ))
  n=-1
  while [ $(( n += 1 )) -lt $num ]
  do
#    new+=( "${b1[n]}" "${b2[n]}" )
    new+=( ${b1[n]+"${b1[n]}"} ${b2[n]+"${b2[n]}"} )
  done
  

Copy new array into target array

  eval "$j=( \"\${new[@]}\" )"
}