Как удалить повторяющиеся значения из массива PHP на основе части строки - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть текстовый файл в виде Name@Phone\n.Я положил данные в массив с explode().Как удалить повторяющиеся строки (значения) только для телефона?Я хочу избежать

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

Я хочу сделать это уникальным, основываясь на телефоне.

Ответы [ 3 ]

4 голосов
/ 08 декабря 2011
<?php
$result = array();
foreach($dataset as $input):
    $parts = explode('@', $input);
    $result[$parts[1]] = $parts[0];
endforeach;
$result = array_flip($result);
2 голосов
/ 08 декабря 2011

Если вас не интересуют имена и вам нужен просто список уникальных чисел, вы можете заменить все символы в списках, которые не являются числами или тире, тогда выполните 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 работает хорошо.

1 голос
/ 08 декабря 2011

Использование:

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

var_dump( $result );
...