php - 如何从foreach中排除相同的元素?
问题描述
请告诉我,如何从 foreach 中排除相同的元素?
代码:
$sql = 'SELECT * FROM users, posts
WHERE posts.author_id = users.id';
$rows = R::getAll($sql);
$data = R::convertToBeans('posts',$rows);
foreach ($data as $element) {
echo $element->login . '<br/>' . $element->name . '<br/><br/>';
}
结果:
mail_1@test.com
帖子1
mail_1@test.com
邮政2
mail_2@test.com
Post3
mail_3@test.com
Post5
mail_2@test.com
邮政4
如所须:
mail_1@test.com
帖子1
邮政2
mail_2@test.com
Post3
邮政4
mail_3@test.com
Post5
解决方案
您可以先将数组的内容分组,login
并通过分组数组循环显示:
$groupedData = [];
foreach ($data as $element) {
$groupedData[$element->login][] = $element->name;
}
foreach ($groupedData as $login => $names) {
echo $login . '<br/>' . join('<br/>', $names) . '<br/><br/>';
}
好的是如果需要,您实际上可以在其他地方使用 groupedData 数组。
推荐阅读
- python - 有没有办法将 Openpyxl 中的迭代输出转换为坐标
- c# - 在 Visual Studio Community 2019 中默认设置 CodeFile
- amazon-web-services - AWS Cloudformation:安全组无效
- nested - Dash-Plotly:如何从表示互连和嵌套数据的多下拉列表中进行回调?
- javascript - 根据输入更改 React-Select 选项
- xamarin.forms - 从照片 Android Xamarin 中选择图像
- ruby-on-rails - 如何在设计和使用可恢复时将电子邮件设置为可选?
- android - 运行 Junit 5 Android 测试时未解决的参考 jupiter 和 assertTrue
- r - 使用变量来引用数据框列
- c# - 在后面的代码中定义 HelixViewport3D 与在 XAML 中不同吗?