我在数组中有不确定数量的项目:
$query = MysqL_query("SELECT * FROM orders WHERE orderID = '$orderID'");
while($row = MysqL_fetch_array($query)){
$items[] = $row[itemnumber];
$quantity[] = $row[quantity];
$vendoremail[] = $row[vendoremail];
}
数组中的值可能是这样的:
$items = ("A","B", "C");
$quantity = ("2", "1", "3");
$vendoremail = ("name1@email.com", "name2@email.com", "name1@email.com");
我想对来自相同电子邮件地址的数据进行分组,然后向每个地址发送一封电子邮件.
因此,一封电子邮件会发送到name1@email.com,邮件正文中包含项目“ A”和“ C”,数量为“ 2”和“ 3”.
然后,另一封电子邮件发送到name2@email.com,邮件正文中带有项目“ B”和数量“ 1”.
有人知道实现此目标的最佳方法吗?
解决方法:
您可以通过GROUP_CONCAT()将值分组为逗号分隔的字符串,并可以选择将其拆分回PHP中:
SELECT
GROUP_CONCAT(itemnumber) AS items,
GROUP_CONCAT(quantity) AS quantities,
vendoremail
FROM orders
WHERE orderid = '$orderID'
GROUP BY vendoremail
这将产生如下结果:
name1@email.com A,C 2,3
name2@email.com B 1
在PHP中,如果需要,可以将explode()列表退回到数组中,以显示在电子邮件正文中.
$results = array();
while($row = MysqL_fetch_array($query)){
$results[] = $row;
}
foreach ($results as $result) {
$email = $result['vendoremail'];
$items = explode(",", $result['items']); // Now it's an array...
$quantities = explode(",", $result['quantities']); // Now it's an array...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。