在PHP中消除2D数组中的重复值

时间:2017-07-10 06:36:44

标签: php arrays duplicates double-elimination

2D Array

我无法附加图片,所以请在链接中找到数组。 我删除了这个数组的重复值。我使用的技术有点糟糕。数组名称为$pap。 这是代码

 `foreach ($pap as $key => $row)
 { 
 foreach ($row as $subkey => $subvalue)
 {       $p[$n]=$pap[$key][$subkey];
 $n++;
}
}
$unique = array_unique($p);
$n=0; $abc = array();
foreach ($unique as $key => $row){
$abc[$n]=$unique[$key]; $n++;
}
$m=0;
echo "<table align='center' border='2'>";
foreach ($pap as $key => $row)
{ 
echo "<tr>";
foreach ($row as $subkey => $subvalue)
{       
if($m<$n){
if($pap[$key][$subkey]==$abc[$m])   
{
echo "<td>";
echo $pap[$key][$subkey];
echo "</td>";
$m++;
}
}
}
echo "</tr>";
}
echo"</table>";`

任何更好的技术都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

检查一下,我想你会为你做这个工作。

<?php

$details = array( 
    0 => array("id"=>"1", "name"=>"Mike",    "num"=>"9876543210"), 
    1 => array("id"=>"2", "name"=>"Carissa", "num"=>"08548596258"), 
    2 => array("id"=>"1", "name"=>"Mathew",  "num"=>"784581254"), 
); 

function super_unique($array)
{
  $result = array_map("unserialize", array_unique(array_map("serialize", $array)));

  foreach ($result as $key => $value)
  {
    if ( is_array($value) )
    {
      $result[$key] = super_unique($value);
    }
  }

  return $result;
}

var_dump(super_unique($details));
?>