The easiest way I can think of is to use a filter:
Then just call that with:
function findAuthorAndTitle(array $a, $sAuthor, $sTitle)
$fn = function(array $a) use ($sAuthor, $sTitle)
$bResult = true;
if (isset($a['Author'], $a['Title']))
$bResult &= $bResult && (strcasecmp($a['Author'], $sAuthor) == 0);
$bResult &= $bResult && (strcasecmp($a['Title'], $sTitle) == 0);
$bResult = false;
return array_filter($a, $fn);
It can be modified to deal with having no author name or no title as well, but I didn't add that here.
$filtered = findAuthorAndTitle($mainArray, 'Author name here', 'title here');
For just the keys, grab array_keys off of the $filtered result.