从数组中删除重复项
我使用下面的代码行循环遍历数据库中的表:
$items_thread = $connection -> fetch_all($sql);
如果我打印出数组:
print_r($items_thread);
我会得到这个:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[1] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[2] => Array
(
[RecipientID] => 1
[RecipientScreenname] => Lau T
[RecipientFirstname] => TK
[RecipientEmail] => [email protected]
)
)
但我想删除数组中的重复项,所以我使用 array_unique
print_r(array_unique($items_thread));
我得到下面奇怪的结果,这并不完全是我想要的:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
)
理想情况下,我认为它应该返回这个:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[1] => Array
(
[RecipientID] => 1
[RecipientScreenname] => Lau T
[RecipientFirstname] => TK
[RecipientEmail] => [email protected]
)
)
我该怎么做才能让它正确?我是否使用了错误的 PHP 语法/默认函数?
I use the line of code below to loop through a table in my database:
$items_thread = $connection -> fetch_all($sql);
And if I print the array out:
print_r($items_thread);
I will get this:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[1] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[2] => Array
(
[RecipientID] => 1
[RecipientScreenname] => Lau T
[RecipientFirstname] => TK
[RecipientEmail] => [email protected]
)
)
But I want to get rid of the duplicate items in the array, so I use array_unique
print_r(array_unique($items_thread));
I get the weird result below which is not quite I am looking for:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
)
Ideally, I think it should return this:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[1] => Array
(
[RecipientID] => 1
[RecipientScreenname] => Lau T
[RecipientFirstname] => TK
[RecipientEmail] => [email protected]
)
)
What shall I do to get it right? Have I used the wrong PHP syntax/default function?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
array_unique
函数将为您完成此操作。您只需要添加SORT_REGULAR
标志:但是,如 bren 建议,如果可能的话,您应该在 SQL 中执行此操作。
The
array_unique
function will do this for you. You just needed to add theSORT_REGULAR
flag:However, as bren suggests, you should do this in SQL if possible.
过滤掉 SQL 查询中的重复项会更好。添加一个获取唯一收件人 ID 的约束
You'd be much better off filtering out the duplicates in the SQL query. add a constraint which fetches a UNIQUE recipientID
要删除重复值,我们可以使用 array_unique() 函数。它的功能是接受一个数组并返回另一个不重复值的数组。
array_unique() 的一般描述如下:
示例 1:
输出:
To remove duplicate values then we can use
array_unique()
function. The functionality of it is to accept an array and returns another array without duplicate values.General description of array_unique() is given below:
Example 1:
Output:
试试这个:
输出以下内容:
但我也认为你应该在数据库中实现这个。另外,检查我的其他答案和解决方案。
Try this:
Outputs the following:
But I also think you should implement this in your database. Also, check my other answer and solutions.
您可以使用此代码,希望它对您有所帮助。它完全可以工作:
You can use this code and I hope it will help you. It's completely working:
您可以使用常规 php 数组来实现此目的。
You can use the regular php arrays to achieve this.
请检查下面的代码,希望这对您有所帮助。
}
Please check below code, I hope this is help full for you.
}