Php 数据关系-寻找解决方案

Php 数据关系-寻找解决方案,php,excel,Php,Excel,我有一个问题需要解决,我肯定有办法解决,我只是不确定“搜索什么”以及如何找到它 我想用Excel或者我可以试着做一个PHP脚本来做这件事 所以基本上,我有一套物质。每对物质要么相容,要么不相容。所以我有一个表,其中有行和列,其中有0或1,即兼容/不兼容 现在我想做的是找到一组物质,这组物质中的所有物质都是相互兼容的。目标是找到尽可能大的组,或者理想情况下,找到最大的、第二大的等,并将它们从最大到最小排序(考虑到该组中元素的最小数量可能会有一些限制) 我希望这是有意义的,问题是我不确定如何解决它,

我有一个问题需要解决,我肯定有办法解决,我只是不确定“搜索什么”以及如何找到它

我想用Excel或者我可以试着做一个PHP脚本来做这件事

所以基本上,我有一套物质。每对物质要么相容,要么不相容。所以我有一个表,其中有行和列,其中有0或1,即兼容/不兼容

现在我想做的是找到一组物质,这组物质中的所有物质都是相互兼容的。目标是找到尽可能大的组,或者理想情况下,找到最大的、第二大的等,并将它们从最大到最小排序(考虑到该组中元素的最小数量可能会有一些限制)

我希望这是有意义的,问题是我不确定如何解决它,但我认为这是应该相对普遍地做的事情,因此我怀疑唯一的方法是从头开始编写脚本/宏,使用蛮力来完成。这也可能不是很有效,因为我有一个包含30多个元素的表

因此,为了更清楚地说明这一点,例如,这里有一个我的数据的简化表:

Substance              A   B  C  D
    A                  0   1  1  1
    B                  1   0  0  1
    C                  1   0  0  0
    D                  1   0  0  0

如果只使用php而不使用数据库,则可以使用它对相关数组的所有元素进行排序

<?php
$substances = [
    'A' => [
        'A' => 0,
        'B' => 1,
        'C' => 1,
        'D' => 0,
    ],
    'B' => [
        'A' => 1,
        'B' => 0,
        'C' => 1,
        'D' => 1,
    ],
    'C' => [
        'A' => 0,
        'B' => 1,
        'C' => 0,
        'D' => 0,
    ]
];
uasort ($substances, function ($a, $b) {
    $a = array_sum($a);
    $b = array_sum($b);
    if ($a == $b) {
        return 0;
    }
    return ($a > $b) ? -1 : 1;
});
var_export($substances);

这个问题有点缺乏信息。你能分享一下你尝试过什么,遇到了什么问题吗?有点不对劲…表格显示B与D兼容,但D只与A兼容???嗨,很抱歉,这个例子,我只是为了举例说明而编造的,基本上我需要创建一组物质,该特定组中的所有物质彼此相容。我的目标是创建包含尽可能多的元素的组-理想情况下,让它们从最大到最小排序(给定该组中元素的最小数量)。一些有用的搜索词:团问题(),邻接矩阵()