2層配列の最下層の一部で部分文字列を検索し、最上層からキーを返そうとしています。たとえば、以下の配列で「A」内で「ca」を検索すると、「0」と「2」が返されます(ただし、「牛」は見逃されます)。
Array (
[0] => Array (
[A] => cat
[B] => horses
)
[1] => Array (
[A] => dog
[B] => cattle
)
[2] => Array (
[A] => cat
[B] => sheep
)
)