【发布时间】:2011-10-09 02:57:51
【问题描述】:
我有以下数组:
$masterlist=[$companies][$fieldsofcompany][0][$number]
仅当从 $fieldsofcompany 选择的字段 = 包含数字数组的位置 2 时,才存在第三维。其他位置包含常规变量。第 3 维始终为 0(数字数组)或 Null。位置 4 包含数字。
我想循环访问所有公司并从$masterlist 中删除所有包含重复数字的公司。
我目前的实现是这样的代码:
for($i=0;$i<count($masterlist);$i++)
{
if($masterlist[$i][2][0][0] != null)
$id = $masterlist[$i][0];
for($j=0;$j<count($masterlist[$i][2][0]);$j++)
{
$number = $masterlist[$i][2][0][$j];
$query = "INSERT INTO numbers VALUES('$id','$number')";
mysql_query($query);
}
}
将数字和相关 ID 插入到表中。然后我像这样选择唯一的数字:
SELECT ID,number
FROM numbers
GROUP BY number
HAVING (COUNT(number)=1)
这让我觉得非常脑残。我的问题是最好的方法是什么?我不是在寻找代码本身,而是在寻找解决问题的方法。对于那些已经阅读到这里的人,谢谢。
【问题讨论】:
标签: php mysql arrays multidimensional-array performance