!in_array在PHP中使用 - 条件语句

时间:2012-10-04 15:27:18

标签: php arrays

我想知道如何使用!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));

此代码将数组中的所有项目都重复;我这样做是为了防止dulicates

我的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;");

2 个答案:

答案 0 :(得分: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'];

  }

答案 1 :(得分:0)

看起来像你想要的东西:

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

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

}