使用php

时间:2016-10-31 10:03:16

标签: php

我已经在谷歌和这个网站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

3 个答案:

答案 0 :(得分:0)

简单的解决方案:

我知道你是新手。您可能需要一个简单的解决方案 您可以保留一系列检测到的电话号码,如果阵列中没有新号码,请将其打印出来。

$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++;
            }
        }
    }
}

答案 1 :(得分:0)

检查这种方式,首先创建一个唯一的数组,然后循环它。

$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/>";
}

答案 2 :(得分:0)

$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>";
    }

}