Получить все родительские ключи заданного дочернего ключа в массиве

Я ломаю голову над этим, но не могу найти решение. Мне нужна функция, которая извлекает все родительские ключи заданного дочернего ключа. Так, например, если у меня есть такой массив:

array( 'apples' => array( 'bananas' => array( 'strawberries' => array( 'fruit' => array() ) ) ) ) 

Я бы назвал функцию «key_get_parents ($ key, $ array)», и она вернет массив со всеми родительскими ключами. В этом примере это будет массив («яблоки», «бананы», «клубника»).

 $array = array( 'apples' => array( 'bananas' => array( 'strawberries' => array( 'fruit' => array() ) ) ) ); function key_get_parents($subject, $array) { foreach ($array as $key => $value) { if (is_array($value)) { if (in_array($subject, array_keys($value))) return array($key); else { $chain = key_get_parents($subject, $value); if (!is_null($chain)) return array_merge(array($key), $chain); } } } return null; } // Prints "Array ( [0] => apples [1] => bananas )" print_r(key_get_parents('strawberries', $array));