我为这个问题伤透了脑筋,但似乎找不到解决方案。我需要一个函数来检索给定子键的所有父键。例如,如果我有一个这样的数组:
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));