Php 创建具有不确定级别的动态多维数组
我正试图建立一个联盟计划。一切都很好,除了我想画结构的时候 我有一些脚本正在绘制一个多维数组,比如图(),但要做到这一点,它需要读取一个已经构建的多维数组 我的问题是,我还没有构建该数组,因为所有数据都在DB中,所以我尝试使用DB中的所有数据构建它,但这非常困难,因为没有限制级别 因此,如果必须添加新级别,我不知道如何将[]以友好方式添加到数组中 数组的一个示例如下所示:Php 创建具有不确定级别的动态多维数组,php,multidimensional-array,nested,Php,Multidimensional Array,Nested,我正试图建立一个联盟计划。一切都很好,除了我想画结构的时候 我有一些脚本正在绘制一个多维数组,比如图(),但要做到这一点,它需要读取一个已经构建的多维数组 我的问题是,我还没有构建该数组,因为所有数据都在DB中,所以我尝试使用DB中的所有数据构建它,但这非常困难,因为没有限制级别 因此,如果必须添加新级别,我不知道如何将[]以友好方式添加到数组中 数组的一个示例如下所示: $structure = [ "Main Member" => [ "UserName" =&
$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" => []
]
]
]
];
但如果数据库中存在数据,则可能会更深入
我用这个函数建立了两个级别:
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];
}
$字段可以是“用户名”或“赞助商”,这取决于我是从主要会员还是从推荐人那里获得数据