关于未知数量的php数组的笛卡尔积

时间:2017-01-27 03:57:24

标签: php cartesian-product

我需要从许多独立的数组中获得每个独特的组合。我不知道有多少阵列,因为这可能会有所不同。

如果我错了,请纠正我,但我认为我应该使用var assembly = Assembly.Load(assemblyPath); var clss = Activator.CreateInstance(ClassFullPath); var method = clss.GetType().GetMethod(MethodName); var result = method.Invoke(); 方法。

这是我的数据的基本概要。

Cartesian Product

期望的结果:

[
    {
        "department": "CIS",
        "name": "Intro to CIS",
        "sections": {
            "01": {
                "regNum": "012345",
                "days": "MWF",
                "startTime": "900",
                "endTime": "1030",
                "labDay": "M",
                "labStartTime": "1300",
                "labEndTime": "1500"
            },
            "02": {
                "regNum": "098304",
                "days": "TR",
                "startTime": "1300",
                "endTime": "1500",
                "labDay": "",
                "labStartTime": "",
                "labEndTime": ""
            }
        }
    },
    {
        "department": "MATH",
        "name": "Intro to MATH",
        "sections": {
            "01": {
                "regNum": "012345",
                "days": "MWF",
                "startTime": "900",
                "endTime": "1030",
                "labDay": "M",
                "labStartTime": "1300",
                "labEndTime": "1500"
            },
            "02": {
                "regNum": "098304",
                "days": "TR",
                "startTime": "1300",
                "endTime": "1500",
                "labDay": "",
                "labStartTime": "",
                "labEndTime": ""
            }
        }
    }
]

请注意,这些是数组,因为我仍然需要能够访问days,startTime ..etc

1 个答案:

答案 0 :(得分:0)

您不是所有部门的笛卡尔产品,只是每个部门及其部门的产品。您只需要2个嵌套循环,一个用于部门,另一个用于部门内的部分。然后,您可以将部门名称和部分编号添加到关联数组中,并将其推送到结果。

df = df.apply(lambda x:x.drop_duplicates(), axis=1)

DEMO