Function: pair

Pair corresponding elements of 2 arrays to single element in new array

USAGE: pair arrayname1 arrayname2 arrayname3 sep::

pair()
{     
  local a1=${1:?Array name required} a2=${2:?Array name required}
  local j=${3:?Array name required} sep=${4:-:} b1 b2 new
  

Store both arrays in local arrays

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

Copy array into $j

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