这是多维数组:
$group_tree = Array
(
[1] => Array
(
[id] => 1
[children] => Array
(
[6] => Array
(
[id] => 6
[children] => Array
(
[7] => Array
(
[id] => 7
[children] => Array
(
)
)
)
)
)
)
)
这是我使用的递归函数( $group_id = 6 ):
public static function sub_group_tree( $group_tree , $group_id )
{
foreach ( $group_tree as $key => $value ) {
echo "<br>key : $key and group id is $group_id <br>" ;
if( (int) $key == $group_id ) {
echo "check";
return $value;
}
if( count($value['children']) ){
Group::sub_group_tree( $value['children'] , $group_id ) ;
}
}
}
奇怪的是,我将“return”返回为 null ,但如果我使用“die($value)”而不是“return”,那么我将 $value 视为多维数组的正确部分。看起来“return”并没有打破循环,尽管条件已满,但循环继续,“check”这个词将在函数返回值的测试中打印出来。看结果:
key : 1 and group id is 6
key : 6 and group id is 6
check
null
我在 php 5.4 上使用 Laravel