2012-03-28 69 views
0

这里有一段代码,我想任何人都可以告诉我什么是即时通讯做不对,因为我没有得到期望的结果 (请参阅查询获取我以下结果的匹配排序阵列

- 61|0|0|0|0|0|0|0|0|0|0|0|0|0|70|0|0|66|0|0| 
- 63|0|0|0|0|0|0|0|0|0|0|0|0|0|78|0|0|69|0|0| 

)。我希望价值61|0|0|0|0|0|0|0|0|0|0|0|0|0|70|0|0|66|0|0|匹配61|66|70|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|我该怎么做?

$value = '61|66|70|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|' $toCompare = explode("|", $value, -1); sort($toCompare); $query = $db -> query("select groups,category_group from products "); while($compare = $query -> fetch_assoc()){ $compareWith = explode("|", $compare['category_group']); sort($compareWith); if ($compareWith == $toCompare) $compareResult = $compare['category_group']; }
+0

您的$值应该引用,因为它是一个字符串。 – 2012-03-28 06:58:10

+0

您是否尝试过'var_dump($ compareWith,$ toCompare)'来查看它们是否确实在相同的ordeR中? – 2012-03-28 06:59:09

+0

在查询中有“组”,但表达式中有“category_group”...? – MrWhite 2012-03-28 07:02:52

回答

0

您只能从产品表中获取groups列,但在循环中您使用的是category_group并且每次覆盖$compareResult。使它成为数组,你将得到所有结果数组。

$compareResult = array(); 
$query = $db -> query("select groups,category_group from products "); 
    while($compare = $query -> fetch_assoc()){ 
     $compareWith = explode("|", $compare['category_group']); 
     sort($compareWith); 
    if ($compareWith == $toCompare) $compareResult[] = $compare; 
} 
+0

我做了你所说的更正,但仍然得到一个空阵列作为结果 – 2012-03-28 07:13:40

+0

因为你给有限的信息,编辑你的问题,并添加'产品'表结构和阵列的结果与你想要的细节 – safarov 2012-03-28 07:15:14

+0

谢谢@safarow – 2012-03-28 07:35:02