我需要检查我的id是否以逗号分隔的字符串存在。
我的字符串在数据库中保存为"1,2,3,4,10"
。
我试过了
$HiddenProducts = array($sqlvalue);
if (in_array(2, $HiddenProducts)) {
echo "Available";
} else {
echo "Not available";
}
它不起作用。任何解决方案请...
答案 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)
让我提供一种不同的方法,而不仅仅是治愈症状。
您应该不将信息存储在表格中。如果某些产品是隐藏的,应该可以让数据库弄清楚。为此,您需要正确地规范化数据。
显然,你有一个产品表,有些应该隐藏。如果这是属于每个产品的属性true
或false
,您只需将其作为新列添加到您的products表中。
SELECT id FROM products WHERE id = 2 AND hidden = 1
如果hidden
不是您产品的固有属性,您还可以创建一个只是产品ID列表的帮助程序表。
条目只是说产品是隐藏的。如果表中没有ID,则不隐藏。