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