我正在尝试建立一个联盟计划。 Everythig工作正常,除非我想绘制结构。
我有一些脚本正在绘制一个多维数组,如图(http://prnt.sc/e5pmic),但要做到这一点,它需要读取已经构建的多维数组。
我的问题是,我没有建立该阵列,因为所有数据都在数据库中,因此我尝试使用数据库中的所有数据来构建它,但这很难,因为那里有没有限制水平。
因此,如果我必须添加新级别,我不知道如何将[] dinamically添加到数组中。
数组的一个例子是这样的:
$structure = [
"Main Member" => [
"UserName" => "user1",
"Sponsor" => "",
"Referrers" => [
[
"UserName" => "user2",
"Sponsor" => "user1",
"Referrers" => []
],
[
"UserName" => "user3",
"Sponsor" => "user1",
"Referrers" => [
[
"UserName" => "user4",
"Sponsor" => "user3",
"Referrers" => []
],
[
"UserName" => "user5",
"Sponsor" => "user3",
"Referrers" => []
]
]
],
[
"UserName" => "user6",
"Sponsor" => "user1",
"Referrers" => []
]
]
]
];
但如果在数据库中存在数据,它可能会更深。
我只需使用此功能构建2个级别:
private function getMemberData($field, $value)
{
$select = ['id', 'Matrix', 'FirstName', 'EntityTypeID', 'Active', 'Sponsor'];
$this->join('members', 'entities', 'EntityID', 'id', 'LEFT');
$this->where($field, $value);
$result = $this->get(self::TB_USERS, $select, null);
# If I got more than 1 member, those are referrers
if(count($result) > 1) {
$array = [];
foreach($result as $member) {
$array[] = $member;
}
return $array;
}
return $this->get(self::TB_USERS, $select, null)[0];
}
$字段可以是" UserName"或者"赞助商",这将取决于我是从主要会员还是从推荐人处获取数据。