The original array: Array ( [0] => Array ( [Tags Name] => TIFF [271] => Array ( [Data] => Array ( [0] => Canon ) ) [272] => Array ( [Tag Name] => Model [Tag Description] => [Type] => String ) ) [34665] => Array ( [Data] => Array ( [0] => Array ( [33434] => Array ( [Data] => Array ( [0] => Array ( [Numerator] => 1 [Denominator] => 60 ) ) ) [33437] => Array ( [Tag Name] => Aperture F Number [Data] => Array ( [0] => Array ( [Numerator] => 35 [Denominator] => 10 ) ) ) ) ) ) ) I want to get the piece of data that is 'Canon' in the array at: [0][271][Data][0] and I also need to get the piece of data that says 'Model' in the array at: [0][272][Tag Name] but I also need to let my user define a key, so he might want to get [0][34665][Data][0][33434][Data][0][Numerator] so I can't hardcode in all the values I need.