【发布时间】:2012-08-21 17:16:41
【问题描述】:
我正在尝试在 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 的原始数据可能在它们之间存在差异,但是当去掉破折号和逗号时与其他条目重复),然后删除父键。
我真诚地希望我以正确的方式提出了这个问题。
有人愿意帮忙吗? 谢谢!
【问题讨论】:
-
有问题有一个数组匹配算法,你也可以通过它删除匹配的元素
-
感谢 Mayank! eggyal(下)实际上将其“扼杀”在了萌芽状态 - 在它进入 PHP 并成为问题之前,他/她的 SQL 向导。不过感谢您的帮助!
标签: php mysql arrays compare duplicates