使用php从文本文件中提取不重复的电话号码


extract non duplicated phone numbers from text file using php

我在google和这个网站stackoverflow的帮助下完成了这个代码,非常感谢你们所有的专业人士,我向你们所有人致敬:)

但是我有一个小问题就是它打印出重复的数字

我有下面的代码

$link = file_get_contents("file.txt");
    if(preg_match_all('/'b[0-9]{3}'s*[-]?'s*[0-9]{3}'s*[-]?'s*[0-9]{4}'b/', $link, $content, PREG_PATTERN_ORDER)){
        $i = 0;
        if(!empty($content[0][$i])){ 
            while(!empty($content[0][$i])){
                echo "<br/>";
                echo $content[0][$i];
                $i++;
            }
        }
    }

file.txt

Name: 
Phone: 1477276084
Name: 
Phone: 2958692011
Name: 
Phone: 2958692011
Name: 
Phone: 2958692011
Name: 
Phone: 9954129334
Name: 
Phone: 123-812-4181
Name: 
Phone: 609-182-5123
Name: 
Phone: 609-182-5123
Name: 
Phone: 609-182-5123
Name: 
Phone: 609-182-5123
$link = file_get_contents("file.txt");
if(preg_match_all('/'b[0-9]{3}'s*[-]?'s*[0-9]{3}'s*[-]?'s*[0-9]{4}'b/', $link, $content, PREG_PATTERN_ORDER)){
    $content = array_unique($content[0]);
    foreach($content as $key=>$value)
    {
        echo $value;
        echo "<br>";
    }
}

这样检查,首先创建一个唯一数组,然后循环它。

$link = file_get_contents("file.txt");
$phoneArray = array();
preg_match_all('/'b[0-9]{3}'s*[-]?'s*[0-9]{3}'s*[-]?'s*[0-9]{4}'b/', $link, $content, PREG_PATTERN_ORDER);
$phoneArray = array_unique($content[0]);
foreach($phoneArray as $number){
    echo $number;
    echo "<br/>";
}

简单解决方案:

我知道你是个新手。你可能需要一个简单的解决方案您可以保留检测到的电话号码的数组,如果数组中没有新号码,则打印它。
$link = file_get_contents("file.txt");
$detected = array();
if(preg_match_all('/'b[0-9]{3}'s*[-]?'s*[0-9]{3}'s*[-]?'s*[0-9]{4}'b/', $link, $content, PREG_PATTERN_ORDER)){
    $i = 0;
    if(!empty($content[0][$i])){ 
        while(!empty($content[0][$i])){
            if (!in_array($content[0][$i], $detected))
            {
                $detected[] =  $content[0][$i];
                echo "<br/>";
                echo $content[0][$i];
                $i++;
            }
        }
    }
}