删除或隐藏变量中的重复值

时间:2018-04-01 14:50:03

标签: php

我有一个从数据库调用数据的变量:

for($i = 0; $i < count($consultaReporte); $i++)
            {       
                    $a= $consultaReporte[$i]['FIELD'];                          

            }

我在html表中打印这个变量,我得到了:

  1. 史密斯
  2. 史密斯
  3. 史密斯
  4. 凯特
  5. 凯特
  6. Jonh
  7. 迈克尔
  8. 如何隐藏或删除重复名称?

    我想要类似的东西:

    1. 史密斯
    2. 凯特
    3. Jonh
    4. 迈克尔
    5. First Solution Second Solution

4 个答案:

答案 0 :(得分:0)

你可以将它们存储在地图中,然后获取地图键(地图没有存储公共密钥)

$a = array();
for($i = 0; $i < count($consultaReporte); $i++)
{        
      $a[$consultaReporte[$i]] = '';                          
}
print_r( array_keys($a) );

答案 1 :(得分:0)

您可以通过保护填充临时数组

来使用它
 $arrTemp = array();

 foreach ($consultaReporte as $curr) { 
      if (!in_array($curr['FIELD'], $arrTemp)) {
         $arrTemp[] = $curr['FIELD'];
      }
 }

  foreach($arrTemp as $currValue){
    echo $currValue;
 }

示例:

$consultaReporte = array("a", "b", "b");
    $arrTemp = array();
        foreach ($consultaReporte as $curr) { 
             if (!in_array($curr, $arrTemp)) {
                $arrTemp[] = $curr;
             }
        }
     foreach($arrTemp as $currValue){
         echo $currValue . '-';
     }

结果 enter image description here

答案 2 :(得分:0)

foreach()

最干净的方法
$temp = [];

foreach ($consultaReporte as $reporte) {
    if (! in_array($field = $reporte['FIELD'], $temp)) {
        $temp[] = $field;
    }
}

// Return the result
return $temp;

答案 3 :(得分:0)

这就是我解决自己问题的方法:

for($i = 0; $i < count($consultaReporte); $i++)
            {                           
                $employeeId = $consultaReporte[$i]['ID_EMPLOYEE'];
                $employeeName = $consultaReporte[$i]['FIELD'];                                      

                if($employeeId == $consultaReporte[$i-1]['ID_EMPLOYEE'])
                {                       
                    $employeeName = '';                                             
                }           

                    $this->cuerpoReporte.= '<tr class="">                           
                                <td width="90" align="left" valign="top" border="0">&nbsp;'.wordwrap(strtoupper(''.$employeeName), 20, "<br />",1).'</td>                                                       
                            </tr>';
            }

它给了我预期的结果。尽管如此,我很确定这不是最佳方式,所以如果有人知道如何优化这些代码,甚至是一个新的代码,它们会给出相同的结果,我将很乐意与大家分享。