在循环php中匹配已排序的数组


matching sorted arrays in loop php

这是我尝试过的一段代码,有人能告诉我我做错了什么吗,因为我没有得到想要的结果(请查看查询,获得以下结果的

 - 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'];
}

您只从products表中获取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;
}