数组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

回到顶部