function findLowestLevelUsers($data, $userId) {
    $result = [];
    
    function getSubordinates($data, $userId, &$result) {
        foreach ($data as $item) {
            if ($item['superior_user_id'] == $userId) {
                getSubordinates($data, $item['id'], $result);
            }
        }
        
        if ($userId != 141) { // 排除最上级用户
            $result[] = floatval($item['user_power']);
        }
    }
    
    getSubordinates($data, $userId, $result);
    
    return $result;
}

$users = [
    // 数据省略...
];

$lowestLevelUsers = findLowestLevelUsers($users, 141);
$totalPower = array_sum($lowestLevelUsers);

var_dump($lowestLevelUsers); // 输出最下级用户的 user_power 数组
var_dump($totalPower); // 输出分销线路的 user_power 之和

该代码定义了一个 findLowestLevelUsers() 函数,该函数接受用户数据数组和用户 ID 作为参数,并返回一个包含所有最下级用户的 user_power 值的数组。该函数使用递归来遍历用户数据数组,找到所有 superior_user_id 等于指定用户的子用户,并递归调用自身来获取其子用户的子用户,以此类推。当找到最下级用户时,将其 user_power 添加到 $result 数组中。最后,该代码使用 array_sum() 函数计算所有最下级用户的 user_power 之和。

查找用户 ID 为 141 的所有最下级用户及其分销线路的力量之和

原文地址: https://www.cveoy.top/t/topic/IXF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录