我需要检查我的 id 是否存在于逗号分隔的字符串中。
我的字符串保存"1,2,3,4,10"
在数据库中。
我努力了
$HiddenProducts = array($sqlvalue);
if (in_array(2, $HiddenProducts)) {
echo "Available";
} else {
echo "Not available";
}
它不工作。请问有什么解决办法...
我需要检查我的 id 是否存在于逗号分隔的字符串中。
我的字符串保存"1,2,3,4,10"
在数据库中。
我努力了
$HiddenProducts = array($sqlvalue);
if (in_array(2, $HiddenProducts)) {
echo "Available";
} else {
echo "Not available";
}
它不工作。请问有什么解决办法...
用于explode()
从字符串创建字符串部分的数组,方法是用特定的分隔符(在本例中为逗号)分割它。
$HiddenProducts = explode(',',$sqlvalue);
if (in_array(2, $HiddenProducts)) {
echo "Available";
} else {
echo "Not available";
}
in_array()
实际上是您想要的,但是您错误地创建了数组。
假设$sqlvalue = '1,2,3,4,10'
...
$hiddenProducts = explode(',', $sqlvalue);
然后你可以使用in_array()
.
让我提供一种不同的方法,而不是仅仅治愈症状。
您可能不应该像那样将您的信息存储在表中。如果某些产品是否隐藏,应该可以让数据库弄清楚。为此,您需要正确规范化您的数据。
显然,您在某处有一张产品表,有些应该隐藏起来。如果这是一个属性true
或false
属于每个产品,您可以将其作为新列添加到您的产品表中。
SELECT id FROM products WHERE id = 2 AND hidden = 1
如果hidden
不是产品的固有属性,您还可以创建一个简单的产品 ID 列表的帮助表。
一个条目只是说该产品是隐藏的。如果表中没有 ID,则不会隐藏它。
首先使用explode函数将逗号分隔的字符串转换为数组
$HiddenProducts = explode(',',$sqlvalue);
然后使用 in_array 函数检查
if (in_array(2, $HiddenProducts))
echo "Available";
else
echo "Not available";