擅长:python、mysql、java
<p>编辑:这可能不是解决问题最有效的方法。如果您对max performance感兴趣(例如,如果您有数百万个值),您可能会对编写更复杂的算法感兴趣。在</p>
<hr/>
<p>PHP似乎正在工作(至少使用给定示例中的数据):</p>
<pre><code>$data = array(
array("Server1", "Server_1", "Main Server", "192.168.0.3"),
array("Server_1", "VIP Server", "Main Server"),
array("Server_2", "192.168.0.4"),
array("192.168.0.3", "192.168.0.5"),
array("Server_2", "Backup"),
);
do {
$foundSynonyms = false;
foreach ( $data as $firstKey => $firstValue ) {
foreach ( $data as $secondKey => $secondValue ) {
if ( $firstKey === $secondKey ) {
continue;
}
if ( array_intersect($firstValue, $secondValue) ) {
$data[$firstKey] = array_unique(array_merge($firstValue, $secondValue));
unset($data[$secondKey]);
$foundSynonyms = true;
break 2; // outer foreach
}
}
}
} while ( $foundSynonyms );
print_r($data);
</code></pre>
<p>输出:</p>
^{pr2}$