php - 从另一个数组中的数组中删除重复项
问题描述
我有一个数组,里面有另一个数组,但是当我从数据库中得到响应时,我有重复,我不想有这个,有什么帮助吗?我已经使用了链接中提供的解决方案,但它不起作用 “警告:非法偏移类型输入”
$atividadesArray = array();
foreach ($result as $row) {
$idAtividade = $row['idAtividade'];
if (!isset($atividadesArray[$idAtividade])) {
$atividadesArray[$idAtividade]['idAtividade'] = $row['idAtividade'];
$atividadesArray[$idAtividade]['Periodo'] = $row['Periodo'];
$atividadesArray[$idAtividade]['Mes'] = $row['Mes'];
$atividadesArray[$idAtividade]['haveClasses'] = $row['haveClasses'];
$atividadesArray[$idAtividade]['Destinatarios'] = $row['Destinatarios'];
$atividadesArray[$idAtividade]['Nome'] = array();
$atividadesArray[$idAtividade]['Grupo'] = array();
$atividadesArray[$idAtividade]['Departamento'] = array();
}
$atividadesArray[$idAtividade]['Nome'][] = $row['Nome'];
$atividadesArray[$idAtividade]['Grupo'][] = $row['Grupo'];
$atividadesArray[$idAtividade]['Departamento'][] = $row['Departamento'];
}
foreach ($atividadesArray as $idAtividade => $t ) {
$json[]=$t;
}
echo json_encode($json);
解决方案
只是不要添加该项目,如果它已经存在于数组中:
...
// Search for the element in the array
if (array_search($row['Departamento'], $atividadesArray[$idAtividade]['Departamento']) === false) {
// Add only if nothing found
$atividadesArray[$idAtividade]['Departamento'][] = $row['Departamento'];
}
注意===
运算符不能将元素与键0
(第一个添加的)和false
布尔值混淆;
推荐阅读
- redis - Redis sorted set 排行榜排名同分
- android - 在构建器方法中强制方法调用
- wordpress - 如何在点击类别页面 wordpress 类别上显示子类别
- javascript - 从控制器执行所有代码后,如何在Spring mvc中从控制器获取数据标志到jsp
- azure-resource-manager - 带有 AKS 和 ARM 模板的 Helm
- c# - C# UWP Toast 通知和推送通知之间的区别
- c# - 使用复选框异步下载
- angular-material - cdk-global-scrollblock 未在 Angular Material 对话框中应用
- gcc - gcc 5 does not detect stack smashing for inline functions but gcc 7 does
- mongodb - spring-boot mongodb 4.0 兼容性