Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建具有不确定级别的动态多维数组_Php_Multidimensional Array_Nested - Fatal编程技术网

Php 创建具有不确定级别的动态多维数组

Php 创建具有不确定级别的动态多维数组,php,multidimensional-array,nested,Php,Multidimensional Array,Nested,我正试图建立一个联盟计划。一切都很好,除了我想画结构的时候 我有一些脚本正在绘制一个多维数组,比如图(),但要做到这一点,它需要读取一个已经构建的多维数组 我的问题是,我还没有构建该数组,因为所有数据都在DB中,所以我尝试使用DB中的所有数据构建它,但这非常困难,因为没有限制级别 因此,如果必须添加新级别,我不知道如何将[]以友好方式添加到数组中 数组的一个示例如下所示: $structure = [ "Main Member" => [ "UserName" =&

我正试图建立一个联盟计划。一切都很好,除了我想画结构的时候

我有一些脚本正在绘制一个多维数组,比如图(),但要做到这一点,它需要读取一个已经构建的多维数组

我的问题是,我还没有构建该数组,因为所有数据都在DB中,所以我尝试使用DB中的所有数据构建它,但这非常困难,因为没有限制级别

因此,如果必须添加新级别,我不知道如何将[]以友好方式添加到数组中

数组的一个示例如下所示:

$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];
}  
$字段可以是“用户名”或“赞助商”,这取决于我是从主要会员还是从推荐人那里获得数据