PHP比较具有多个字符串数据的数组中的重复项

时间:2017-03-28 17:51:01

标签: php arrays string compare

我有一个数组,每个索引号有四列(除以“;”)。数据来自csv文件。

示例数据:

John = Firstname
Doe = Lastname
Playground = Description 
john.doe@example.com = Email

print_r($dataArray);

Array
(
 [0] => John;Doe;Playground;john.doe@example.com
 [1] => John;Doe;Playground test;john.doe@example.com
 [2] => John;Doe;test Playground;john.doe@example.com
 [3] => Johnny;Dawson;Test Area;john.doe@example.com
)

现在我想删除array_unique的重复项。

但我只想比较“firstname”和“lastname”。

如果firstname和lastname有多个结果,则删除重复的条目。

在这种情况下[1]和[2]

$finalArray = array_unique($dataArray); 

数组唯一仅在所有行具有相同数据时才有效。

 [0] => John;Doe;Playground;john.doe@example.com
 [1] => John;Doe;Playground;john.doe@example.com

目标:最终结果

Array
(
 [0] => John;Doe;Playground;john.doe@example.com
 [1] => Johnny;Dawson;Test Area;john.doe@example.com
)

处理这种情况的好方法是什么?

1 个答案:

答案 0 :(得分:2)

$a将是独一无二的。注意保持不变的数组键。

foreach($a as $k=>$v)
{
   list($name,$family) = explode(';', $v);
   if( isset($temp[$name.$family]) )
        unset($a[$k]);
   else
        $temp[$name.$fam] = true;
}