Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较数组中的条目并删除重复项(PHP、MySQL)_Php_Mysql_Arrays_Compare_Duplicates - Fatal编程技术网

比较数组中的条目并删除重复项(PHP、MySQL)

比较数组中的条目并删除重复项(PHP、MySQL),php,mysql,arrays,compare,duplicates,Php,Mysql,Arrays,Compare,Duplicates,我有一个小任务要用PHP/MySQL来完成 我们正在从客户那里收集传真号码和其他数据,以防我们在我工作的公司(不从事编程)的运营出现问题,别担心 基本上我有一个数组,看起来像这样 Array [1] [company] => "Company A" [fax] => "031-558330" [2] [company] => "Company B" [fax] => "031558330" [3]

我有一个小任务要用PHP/MySQL来完成

我们正在从客户那里收集传真号码和其他数据,以防我们在我工作的公司(不从事编程)的运营出现问题,别担心

基本上我有一个数组,看起来像这样

   Array
   [1]
      [company] => "Company A"
      [fax] => "031-558330"

   [2]
      [company] => "Company B"
      [fax] => "031558330"

   [3]
      [company] => "Company C"
      [fax] => "12345"
请注意,如果删除破折号-,则[fax]实际上是1和2中的副本

我的问题是我需要删除[2],因为它是[1]的副本。基本上,我试图列出唯一的传真号码,并打印该唯一传真号码的公司名称

到目前为止,我已经做到了:

function format_text($text,$number)
{
    $text = str_ireplace(" ","",$text);
    $text = str_ireplace("-","",$text);
    $text = str_ireplace(",","",$text);
    $text = str_ireplace("/","",$text);
    $text = str_ireplace("+46","0",$text);
    $text = trim($text);

    return $text;
}


$fax_result = mysql_query("SELECT fax,company FROM beredskap GROUP BY company") or die(mysql_error());

for($i = 0; $fax_array[$i] = mysql_fetch_assoc($fax_result); $i++) ;
array_pop($fax_array);

for($i = 0; $i<count($fax_array);$i++)
{ 
    $fn = format_text($fax_array[$i]['fax']);
    if(!empty($fn)) {
    echo trim($fax_array[$i]['company']) .",". $fn ."\n";

    }
}
我不知道应该如何比较两个子元素,因为SQL中的原始数据可能有差异,但如果去掉破折号和逗号,则会复制到其他条目,然后删除父键

我真诚地希望我以正确的方式提出了这个问题

有人愿意帮忙吗? 谢谢大家!

您可以在SQL中执行此操作:

选择公司, TrimReplaceFax, ' ', , '-', , ',', , '/', , '+46', '0' 传真号码 来自贝雷德斯卡普 传真号码分组 请注意,如果表中针对不同公司显示相同的传真号码,则上述查询将不确定地选择其中一家公司。如果在这种情况下,您更愿意选择特定的公司,请说明如何确定要选择的公司


还请注意,如果某个公司在beredskap表中有具有不同传真号码的记录,则此分组将导致该公司的resultset中出现多个条目,而原始查询将不确定地仅选择该公司的一个传真号码。如果这不是您想要的行为,请说明如何确定要选择的传真号码。

检查此项可能会有帮助。有一种数组匹配算法,您也可以通过该算法删除匹配的元素谢谢Mayank!下面的eggyal实际上把它扼杀在萌芽状态——在它进入PHP并成为问题之前,他/她的SQL魔法。谢谢你的帮助!非常感谢你!我正在试这个。如果同一家公司出现两次,那没关系,因为一家公司可能有5张不同的面孔,他们希望我们在紧急情况下传真给他们。我正在尝试这一个,并向你汇报。你是。。。。你是神吗?这正是我所希望的。我真羡慕你的逻辑魔法。非常感谢你。希望我的处境和有限的脑力/经验的其他人能看到你优雅的解决方案。在问题进入PHP之前修复它。