gpt4 book ai didi

php - 如何比较具有最佳性能的数组

转载 作者:行者123 更新时间:2023-11-29 15:38:32 27 4
gpt4 key购买 nike

我正在尝试使用 PHP/MySQL 比较两个不同数据库的同一个表(寻找不同的值)。

我已经在数组中拥有每个表的字段/值:

DATABASE1.CONFIGTABLE

array(2) {
[0]=>
array(4) {
["id"]=>
string(1) "1"
["path"]=>
string(20) "some/key"
["value"]=>
string(1) "Unique value"
}
[1]=>
array(4) {
["id"]=>
string(1) "2"
["path"]=>
string(21) "some/url"
["value"]=>
string(21) "http://domain1.com/"
}
}

DATABASE2.CONFIGTABLE

array(2) {
[0]=>
array(4) {
["id"]=>
string(1) "1"
["key"]=>
string(20) "some/key"
["value"]=>
string(1) "Unique value"
}
[1]=>
array(4) {
["id"]=>
string(1) "2"
["key"]=>
string(21) "some/url"
["value"]=>
string(21) "http://domain2.com/"
}
}

我想比较它们并返回一个仅包含不同值的数组。例如,如果所有值都相同(“id”和“key”),但“value”字段不同,请将其添加到最终数组中。

由于两个表的“唯一值”相同,但域不同,因此所需的数组将如下所示:

array(1) {
[0]=>
array(4) {
["id"]=>
string(1) "2"
["key"]=>
string(21) "some/url""
["value"]=>
string(21) "http://domain2.com/"
}
}

或者更好:

array(1) {
[0]=>
array(4) {
["id"]=>
string(1) "2"
["key"]=>
string(21) "some/url""
["value_1"]=>
string(21) "http://domain1.com/",
["value_2"]=>
string(21) "http://domain2.com/"
}
}

我们的想法是寻找性能方面的最佳方法,因为表可以包含数千行。

我希望它是清楚的,提前致谢。

最佳答案

您可以使用简单的 SQL 查询来识别两个表之间不匹配的记录。假设两个表具有相同的 idpath(如示例数据所示),您可以使用以下命令在 value 列中发现差异:此查询:

SELECT
t1.id,
t1.path,
t1.value value1,
t2.value value2
FROM database1.configtable t1
INNR JOIN database2.configtable t2
ON t1.id = t2.id
AND t1.path = t2.path
AND t1.value != t2.value

关于php - 如何比较具有最佳性能的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57947961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com