2015-04-29 124 views
3

我一直坚持这一小段时间,现在所有我可以在互联网上找到的是如何删除重复项。我是PHP新手,非常感谢。PHP:查找多维数组中的重复项并回显结果

所以我们可以说我有姓氏,地址的多维数组,发生的交通意外及原因事故,像这样:

array(
    array(
    'Adams','King Street 12','14:25','Heart Attack' 
    ), 
    array(
    'Ellis','Vine Street 4','02:48','Broken Leg' 
    ), 
    array(
    'Adams','Parker Street 43','20:10','Heart Attack' 
    ) 
) 

,我需要找到有同样的事故发生一次以上的条目,所以这个短阵,输出应该是这个样子:

Adams King Street 12 14:25 Heart Attack 
Adams Parker Street 43 20:10 Heart Attack 

我试图$answer = array_unique(array_diff_assoc($whole_ar, array_unique($whole_ar))); 但这似乎并没有对多维数组。

+0

它们是相同的,因为“亚当斯”还是“亚当斯”和“心脏病发作”? – AbraCadaver

+0

亚当斯和心脏病发作 –

回答

3

我想你将不得不做这个步骤,首先你需要php5.5或更高,然后把 array_column()在每个按键上的东西,像这样

$myArray = array(
    array(
    'Adams','King Street 12','14:25','Heart Attack' 
    ), 
    array(
    'Ellis','Vine Street 4','02:48','Broken Leg' 
    ), 
    array(
    'Adams','Parker Street 43','20:10','Heart Attack' 
    ) 
); 

接下来你打电话找到的第一个复本键(名字)

$name = array_column($myArray, '0'); 
$address = array_column($myArray, '1'); 
$time = array_column($myArray, '2'); 
$injury = array_column($myArray, '3'); 

接下来我们算OCCURENCES

$count_names = array_count_values($name); 

执行此为每个标准使用if构建

然后选择apropriate阵列,

if ($count_names > 0){ 
... 
} 

Finaly选择使用的结果的apropriate数据行,如果构造

+0

,因为他将事件开关'$ count_names'切换到'$ count_injury'并将'array_count_values($ name);'转换为'array_count_values($伤害)' –

+0

谢谢您没有正确读取 – mantis