使用PHP检查逗号分隔字符串中是否存在值

时间:2012-11-24 07:06:03

标签: php

我需要检查我的id是否以逗号分隔的字符串存在。

我的字符串在数据库中保存为"1,2,3,4,10"

我试过了

$HiddenProducts = array($sqlvalue);

if (in_array(2, $HiddenProducts)) {
  echo "Available";
} else {
  echo "Not available";
}

它不起作用。任何解决方案请...

4 个答案:

答案 0 :(得分:32)

使用explode()从字符串创建字符串部分数组,方法是将其拆分为某个分隔符(在本例中为逗号)。

$HiddenProducts = explode(',',$sqlvalue);
if (in_array(2, $HiddenProducts)) {
  echo "Available";
} else {
  echo "Not available";
}

答案 1 :(得分:3)

in_array()实际上是你想要的,但是你错误地创建了你的数组。

假设$sqlvalue = '1,2,3,4,10' ...

$hiddenProducts = explode(',', $sqlvalue);

然后您可以使用in_array()

答案 2 :(得分:1)

首先使用explode函数将逗号分隔的字符串转换为数组

$HiddenProducts = explode(',',$sqlvalue);

然后使用in_array函数检查

 if (in_array(2, $HiddenProducts))
   echo "Available";
else
   echo "Not available";

答案 3 :(得分:1)

让我提供一种不同的方法,而不仅仅是治愈症状。

您应该将信息存储在表格中。如果某些产品是隐藏的,应该可以让数据库弄清楚。为此,您需要正确地规范化数据。

显然,你有一个产品表,有些应该隐藏。如果这是属于每个产品的属性truefalse,您只需将其作为新列添加到您的products表中。

SELECT id FROM products WHERE id = 2 AND hidden = 1

如果hidden不是您产品的固有属性,您还可以创建一个只是产品ID列表的帮助程序表。

条目只是说产品是隐藏的。如果表中没有ID,则隐藏。