gpt4 book ai didi

php - 根据重复值合并数组php

转载 作者:行者123 更新时间:2023-11-29 05:14:17 25 4
gpt4 key购买 nike

我只是打印从 mysql 获得的数据的值

$sql = "SELECT * FROM tablename";
$res = mysql_query($sql);
$rs = getAll($res);

for($k = 0; $k < count($rs); $k++)
{
$email = $rs[$k]['emailid'];
$name = $rs[$k]['name'];
$content = "<table><tr><td>Name</td><td>Email</td></tr><tr> <td>'.$name.'</td><td>'.$email.'</td></tr></table>";
}

现在 $content 看起来像这样。

--------------
Name Email
--------------
n1 email1


--------------
Name Email
--------------
n2 email2


--------------
Name Email
--------------
n3 email1

现在我想根据common email id 合并html 表格行。这样它应该看起来像

--------------
Name Email
--------------
n1 email1
n3 email1


--------------
Name Email
--------------
n2 email2

name n1n3 基于 'email1' 合并。我如何实现这一目标?

最佳答案

选项 1) 您可以通过电子邮件订购,然后使用 php 填充一些数组来循环结果,验证电子邮件是否从上一个更改,等等,就像 Rajdeb 在其他答案中解释的那样:

SELECT * FROM tablename ORDER BY EMAIL;

你得到:

n1        email1
n2 email2
n3 email1

选项 2) 您可以使用 GROUP_CONCAT 检索通过电子邮件粘贴的名称。然后在 php 循环中,对于每个不同的电子邮件,您将获得用逗号分隔的名称。此处执行的唯一任务是数组分解以获取数组中的名称并将其放入表格单元格中,每封电子邮件仅循环一次,而 php 工作量较少。通过电子邮件订购是可选的。

SELECT GROUP_CONCAT(NAME) AS NAME, EMAIL 
FROM tablename GROUP BY EMAIL ORDER BY EMAIL;

你得到:

n1,n3     email1
n2 email2

如果要将逗号更改为分隔名称,例如“-”,则需要在之前的查询中添加 SEPARATOR:

SELECT GROUP_CONCAT(NAME SEPARATOR '-') AS NAME, EMAIL 
FROM tablename GROUP BY EMAIL ORDER BY EMAIL;

你得到:

n1-n3     email1
n2 email2

希望对您有所帮助! :)

关于php - 根据重复值合并数组php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308149/

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