如何根据字符串的一部分从PHP数组中删除重复值

时间:2011-12-07 20:48:15

标签: php arrays unique

我有一个Name@Phone\n形式的文本文件。我将数据放入一个explode()的数组中。如何仅删除基于电话的重复行(值)?我想避免

Eddie@999-999-999
Ed@999-999-999

我希望在电话的基础上做到这一点。

3 个答案:

答案 0 :(得分:4)

<?php
$result = array();
foreach($dataset as $input):
    $parts = explode('@', $input);
    $result[$parts[1]] = $parts[0];
endforeach;
$result = array_flip($result);

答案 1 :(得分:2)

如果您不关心名称并且只想要一个唯一数字列表,您可以替换列表中不是数字或破折号的所有字符,然后执行array_unique():

$arr = array(
  'Eddie@999-999-999',
  'Ed@999-999-999'
);

$arr = preg_replace('/[^\d\-]/', '', $arr);
$arr = array_unique($arr);

print_r($arr);

如果你知道这些数字总是采用那种格式(名字@号),那么来自@Kenaniah的回复效果很好。

答案 2 :(得分:1)

使用:

$result = array();
foreach($arrayData as $data){
    $uniqueKey = strstr($data, '@');//@999-999-999
    $result[$uniqueKey] = $data;
}

var_dump( $result );