$arr = array(
array(
'id' => 1,
'kids' => array(
array(
'id' => 11,
'kids' => array(
array(
'id' => 101,
'kids' => array(),
),
),
), // please note this is a sample
), // it Could have any number of levels
),
);
在ID值为101的情况下,如何确定ID 1和11是多维数组中该元素的父级?
解决方法:
function get_parents($target, $array)
{
$parents_id = false;
foreach ($array as $item) {
if (empty($array))
return;
if ($item['id'] == $target)
return array();
else
$parents_id = get_parents($target, $item['kids']);
if (is_array($parents_id))
array_unshift($parents_id, $item['id']);
}
return $parents_id;
}
对于数组中的每个项目,如果为空,则什么也不返回.如果这是您要查找的项目,请返回一个空数组,在其中我们将添加父级的ID,否则请继续查找.此时,如果$parents_id是一个数组,则是因为您已找到目标键,所以将父代ID添加到数组的开头
像这样调用此函数:get_parents(‘101’,$arr);
在您的示例中,结果将是:
Array
(
[0] => 1
[1] => 11
)
如果找不到目标键,则该函数返回false.