查找用户 ID 为 141 的所有最下级用户及其分销线路的力量之和
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 之和。
原文地址: https://www.cveoy.top/t/topic/IXF 著作权归作者所有。请勿转载和采集!