PHP array_search 很慢 - 我怎样才能加快速度?
PHP array_search is very slow - how can i speed up?
我有两个数组,一个是 API 调用的响应,我从中获取有关哪些电子邮件地址已上传到 System -> $array_emails_found
的信息
另一个数组是form -> $array_data
上传的数据
在这个用例中,我们需要找出系统中的用户,我们需要标记用户数据。
这是我的代码:
for ($i = 0; $i < $count_emails_found; $i++){
if ($key = array_search($array_emails_found[$i], array_column($array_data, 'Email'))){
$key = $key + 1;
$array_data[$key]["InEloqua"] = $array_data[$key]["InEloqua"] . "Y";
}
}
问题是,上传的文件可以包含例如超过 450k 的用户,响应也可以提供这样的数字,并且需要超过 2 小时才能完成。
感谢@Barmar 的评论,现在运行速度更快
$arraycolumn = array_column($array_data, 'Email');
for ($i = 0; $i < $count_emails_found; $i++){
$key = array_search($array_emails_found[$i], $arraycolumn);
$key = $key + 1;
$array_data[$key]["InEloqua"] = $array_data[$key]["InEloqua"] . "Y";
}
我有两个数组,一个是 API 调用的响应,我从中获取有关哪些电子邮件地址已上传到 System -> $array_emails_found
另一个数组是form -> $array_data
在这个用例中,我们需要找出系统中的用户,我们需要标记用户数据。
这是我的代码:
for ($i = 0; $i < $count_emails_found; $i++){
if ($key = array_search($array_emails_found[$i], array_column($array_data, 'Email'))){
$key = $key + 1;
$array_data[$key]["InEloqua"] = $array_data[$key]["InEloqua"] . "Y";
}
}
问题是,上传的文件可以包含例如超过 450k 的用户,响应也可以提供这样的数字,并且需要超过 2 小时才能完成。
感谢@Barmar 的评论,现在运行速度更快
$arraycolumn = array_column($array_data, 'Email');
for ($i = 0; $i < $count_emails_found; $i++){
$key = array_search($array_emails_found[$i], $arraycolumn);
$key = $key + 1;
$array_data[$key]["InEloqua"] = $array_data[$key]["InEloqua"] . "Y";
}