php - 通过电子邮件删除重复的数组值
问题描述
根据电子邮件地址字段从我的输出中删除任何重复行的最佳方法是什么?
我尝试过使用, array_unique
但是它删除了太多的电子邮件。
输出数组:
$guestOutput[] = [
'firstName' => $guest->guestFirstName,
'lastName' => $guest->guestLastName,
'email' => $guest->guestEmail,
];
数组示例:
[0]=>
array(3) {
["firstName"]=>
string(5) "T"
["lastName"]=>
string(6) "B"
["email"]=>
string(21) "glh@gmail.com"
}
[1]=>
array(3) {
["firstName"]=>
string(5) "L"
["lastName"]=>
string(7) "Kr"
["email"]=>
string(23) "email1@gmail.com"
}
我的最终目标是创建一个 CSV 文件:)
解决方案
如果您使用循环添加详细信息(这是我假设您当前的代码正在执行的操作),一种简单的方法是$guestOutput
按电子邮件地址索引。因此,当您添加新的详细信息时,您只会覆盖以前的详细信息...
$guestOutput[$guest->guestEmail] = [
'firstName' => $guest->guestFirstName,
'lastName' => $guest->guestLastName,
'email' => $guest->guestEmail,
];
如果您不需要循环结束时的索引,则可以使用:
$guestOutput = array_values($guestOutput);
推荐阅读
- sonarqube - 2019 年会是另一个 LTS sonarQube 吗?
- c# - AutoFixture:如何正确使用 ISpecimenBuilder 实现中的 BooleanSwitch() 来生成随机值?
- javascript - SVG 未在 jsPDF 上呈现
- azure-automation - 在 Azure 门户中进入 Webbook
- ios - 根据频率对数组元素进行排序
- google-sheets - 使用 QUERY 根据 Google 表格中的当前时间从表格中选择值
- javascript - Chrome 发现 DOM 错误 2 元素 Non-Unique ID with input type password
- c# - 默认构造函数是做什么的?
- r - 如何在列表中搜索以前的字符串直到找到匹配项
- c# - 来自密钥库的证书包含私钥——即使用户没有访问权限