Associated Array in bash

I am using code as below to save data in associated array on Mac OS 10.8.

#!/bin/sh

storyboardExt=".storyboard"
stringsExt=".strings"
newStringsExt=".strings.new"
oldStringsExt=".strings.old"
localeDirExt=".lproj"
baseLprojDir="Base${localeDirExt}"

echo "${baseLprojDir}"

# Find Base.lproj path
baseLprojPath=`find . -name "${baseLprojDir}" -print`
echo "baseLprojPath= ${baseLprojPath}"

#Find storyboard file full path inside project folder
for storyboardPath in `find "${baseLprojPath}" -name "*${storyboardExt}" -print`
do
    echo "storyboardPath= ${storyboardPath}"

    # Get Base strings file path
    baseStoryboardStringsPath=$(echo "$storyboardPath" | sed "s/$storyboardExt/$stringsExt/")
    echo "baseStoryboardStringsPath= ${baseStoryboardStringsPath}"

    storyboardStringsFile=$(basename "$baseStoryboardStringsPath" "${stringsExt}")
    echo "storyboardStringsFile= ${storyboardStringsFile}"

    baseStringsArray["${storyboardStringsFile}"]="${baseStoryboardStringsPath}"
    echo ${baseStringsArray[$storyboardStringsFile]}
done

for baseStringsPath in "${baseStringsArray[@]}"
do
    echo "baseStringsArray= $baseStringsPath"
done

I got result as below, I am not sure why associated array only have one element, can you help me?

Base.lproj
baseLprojPath= ./SingleStoryboardLocalize/Base.lproj
storyboardPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPad.storyboard
baseStoryboardStringsPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPad.strings
storyboardStringsFile= MainStoryboard_iPad
./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPad.strings
storyboardPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.storyboard
baseStoryboardStringsPath= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.strings
storyboardStringsFile= MainStoryboard_iPhone
./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.strings
baseStringsArray= ./SingleStoryboardLocalize/Base.lproj/MainStoryboard_iPhone.strings

One more question, why can't I use "InfoPlist.strings" as associated array index? I have no way to solve it so that I used "InfoPlist" as index...

OSX 10.8 uses bash 3 which does not support associative arrays.. The shebang is not right either as sh is not the same as bash..
OSX does have ksh (ksh93u) which does support associative arrays, so perhaps you could use that instead...

I changed to use ksh, but I got the same result, do you know why?