Php 从两行中查找公共数据,数据用逗号分隔

Php 从两行中查找公共数据,数据用逗号分隔,php,mysql,Php,Mysql,我是php的新手。我面临以下问题需要解决。 我有下表 -------------------------------------- Items T_id -------------------------------------- I1-------- T1,T4,T5,T7,T7,T8,T9 I2-------- T1, T2, T3, T4, T6, T8, T9 I3-------- T5, T6, T7, T8, T9 现在我想从两行中查找公共项,

我是php的新手。我面临以下问题需要解决。
我有下表

--------------------------------------
Items        T_id
--------------------------------------
I1--------   T1,T4,T5,T7,T7,T8,T9  
I2--------   T1, T2, T3, T4, T6, T8, T9  
I3--------   T5, T6, T7, T8, T9  
现在我想从两行中查找公共项,数据用逗号分隔

--------------------------------------
Items        T_id
--------------------------------------
I1,I2-----   T1,T4,T8,T9  
I2,I3-----   T6,T8,T9  
还希望找到三行的公共事务id

--------------------------------------
Items        T_id
--------------------------------------
I1,I2,I3--   T8,T9  
有人对上述问题有想法吗?

请给出答案。

示例显示了一行,如果来自数据库查询,则该行未规范化。如果数据在数据库中,第一步是将其标准化,然后可以使用内部联接

否则,您可能希望在您的应用程序上反复检查并应用它 排

  • 将第一行和第二行放入数组(可以使用explode)
  • 计算其交点(将其命名为rowIntersection)
  • 将第三行放入数组
  • 使用行交叉点计算其交叉点
  • 然后重复,直到排完为止
最后,使用“,”作为分隔符对生成的数组进行内爆

关于

您可以尝试

$sql=select * from table;

$arr=array();
while($row=mysql_fetch_assoc($sql)){
    $arr[]=explode(',',$row['T_id']);
}

$arr_merge=array();
foreach($arr as $value){
    $arr_merge[]=array_merge($arr_merge,$value)
}

$arr_val[]=array_intersect($arr_merge);

该示例显示一个未规范化的行。如果数据在数据库中,第一步是将其标准化,然后您可以使用联接。在应答器上添加注释根据您的请求更改。规范化数据