数组PHP。如何获得深元素的数组
$mang = array( '0' => array(
'uid' => 2,
'introducer_uid' => 1,
'introducer_users' => array(
'0' => array(
'uid' => 8,
'introducer_uid' => 2,
'introducer_users' => array()
),
'1' => array(
'uid' => 9,
'introducer_uid' => 2,
'introducer_users' => array())
)
),
'1' => array(
'uid' => 3,
'introducer_uid' => 1,
'introducer_users' => array(
'0' => array(
'uid' => 5,
'introducer_uid' => 3,
'introducer_users' => array()
),
'1' => array(
'uid' => 6,
'introducer_uid' => 3,
'introducer_users' => array()
),
'2' => array(
'uid' => 7,
'introducer_uid' => 3,
'introducer_users' => array(
'0' => array(
'uid' => 10,
'introducer_uid' => 7,
'introducer_users' => array(
'0' => array(
'uid' => 11,
'introducer_uid' => 10,
'introducer_users' => array()
)
)
)
)
)
)
),
'2' => array(
'uid' => 4,
'introducer_uid' => 1,
'introducer_users' => array()
)
);
我的要求:数组PHP。如何获得深元素的数组
做一个功能在$莽阵列深项目的数量。
样品。 深任何项目将返回样子的:
'UID'= 10将返回深= 3
'UID'= 11将返回深= 4
“UID '= 8将返回深= 2
为 'uid'= 2将返回深= 1
样的功能看起来像
function count_deep($array,$uid){ return $deep; }
请人帮助我。非常感谢。
回答:
您可以使用以下递归函数来获取找到uuid值的深度。如果完全没有找到uuid值,则此版本返回值0。
function searchDepth($uid, $array, $depth = 0) {
$depth++;
foreach ($array as $element)
{
if (isset($element['uid']) && $element['uid'] == $uid)
{
return $depth;
}
else if (isset($element['introducer_users']))
{
$result = searchDepth($uid, $element['introducer_users'], $depth);
if ($result != 0)
{
return $result;
}
}
}
return 0;
}
以及调用与搜索UUID和阵列
$depth = searchDepth(10, $mang);
回答:
有人做过already asked this功能。在那里寻找最佳答案;但是,请注意,在PHP中可能有一个无限深的数组,因此为了万一事情变得荒谬可以使用最大深度是个好主意。
以上是 数组PHP。如何获得深元素的数组 的全部内容, 来源链接: utcz.com/qa/265831.html