【发布时间】:2012-12-22 17:49:26
【问题描述】:
我有两个多维数组,都包含电子邮件地址数据,但键不同,我正在尝试比较它们。我需要获取两个数组中都不存在的所有电子邮件地址,并将它们存储起来。有什么办法可以加快速度吗?
$accts: id、Email、column1 - 13000 行
$db_accts: id1, name, accountID,Email_Address__c - 17000 行
我现在有
foreach($accts as $acct){
$exists = false;
foreach($db_accts as $db_acct){
if($acct['Email'] == $db_acct['Email_Address__c'])
{ $exists = true;}
}
if(!$exists)
{ $update[] = array('Email'=>$acct['Email'],'column1'=>'');
}
}
foreach($db_accts as $db_acct){
$exists = false;
foreach($accts as $acct){
if($acct['Email'] == $db_acct['Email_Address__c'])
$exists = true;
}
if(!$exists)
{
$update[] = array('Email'=>$db_acct['Email_Address__c'],'column1'=>'Y');
}
}
【问题讨论】:
-
是的。一个来自本地数据库,一个来自远程服务器。除非我加载一个临时表,否则 SQL 查询对我没有帮助。
-
好吧,如果最终目的地是一个数据库,它仍然可能最好用 (my)sql 处理
-
它实际上进入了第三个分贝。我正在将 company1 中的数据与我的数据进行比较,然后将其上传到 company2。两家公司的数据都通过 SOAP/REST 访问。
-
你可以在数据库中插入一个,然后另一个,使用电子邮件地址作为唯一键,数据库将处理重复项。
-
这只会加载数据库中的所有电子邮件地址。它不会告诉我两个地址都不存在。
标签: php