首页 > 解决方案 > 从另一个数组中的数组中删除重复项

问题描述

我有一个数组,里面有另一个数组,但是当我从数据库中得到响应时,我有重复,我不想有这个,有什么帮助吗?我已经使用了链接中提供的解决方案,但它不起作用 “警告:非法偏移类型输入”

在此处输入图像描述

        $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);

标签: php

解决方案


只是不要添加该项目,如果它已经存在于数组中:

...
  // 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布尔值混淆;


推荐阅读