1

我想看看如何使用 !in_array。

我有这段代码,但它不起作用:

while ($row = mysql_fetch_assoc($result)) {

        if (!in_array($row['item'], $output)) {
            $output[] = $row;
        }

      }

   print(json_encode($output));  // need all rows, not just ['item']

是的,我知道我使用的是较旧的 mysql,并且代码不是很“安全”。只想知道检查一个项目是否在数组中。如果不是,我希望它存储。如果是,我希望循环跳过......

编辑:这是一个额外的想法:

$items[] = "";
while ($row = mysql_fetch_assoc($result)) {
    $item[] = $row['item'];

        if (!in_array($row['item'], $items)) {
            $output[] = $row;
        }
 }
print(json_encode($output));

此代码将所有项目放入数组中,甚至重复;我这样做是为了防止重复

我的 SQL:

    $result = mysql_query("
    SELECT b.item, a.rate_id, a.review, c.category, u.username
    FROM comments a
    INNER JOIN items b
        ON a.item_id = b.items_id
    INNER JOIN master_cat c
        ON c.cat_id = b.cat_id
    INNER JOIN users AS u
        ON u.user_id = a.user_id
    ORDER BY rate_id DESC LIMIT 15;");
4

2 回答 2

3
  while ($row = mysql_fetch_assoc($result)) {

    if (!in_array($row['item'], $output)) {
        $output[] = $row['item'];
    }

  }

或者

  while ($row = mysql_fetch_assoc($result)) {

    if (!in_array($row['item'], $output))  continue;
    $output[] = $row['item'];

  }
于 2012-10-04T15:28:45.167 回答
0

看起来你想要类似的东西:

while ($row = mysql_fetch_assoc($result)) {

   if (!isset($output[$row['item']])) {
     $output[$row['item']] = $row;
   }

}
于 2012-10-04T15:31:38.740 回答