我想使用任何关键字搜索产品。
我有一个包含非常大数据的JSON文件,我已使用json_decode()
将其转换为数组。我能够显示所有数据,但我想在其中搜索特定产品。无论有没有正则表达式,你能建议我做一个算法吗?
答案 0 :(得分:0)
要搜索数组,您可以使用in_array()
,它会搜索这些值并在找到值时返回true
。
如果您要查找的字符串是数组中的键/索引,则可以使用array_key_exists()
。虽然,在你的情况下,听起来你正在寻找一个价值。
另一个提示,也是我个人的最爱,是array_key_exists()
的替代品。如果您有一个具有短值和特定值的阵列,比如汽车制造商列表,那么您可以反转阵列并简单地测试是否设置了键。
这样的东西,换句话说:
$makers = ['BMW', 'Toyota', 'Koenigsegg');
$makers = array_flip ($makers);
if (isset ($makers[$check])) {
echo "Found!";
}
请注意,此方法通常仅适用于边缘情况,因为通常您会传递索引而不是值,只需对其进行测试。
答案 1 :(得分:-1)
这很简单,假设你有一个像这样的数组。
<?php
$myArray = array(
"foo",
"bar",
"cat"
)
?>
要搜索是否存在,请使用array_key_exists函数。 例如:
<?php
$myArray = array(
"foo",
"bar",
"cat"
)
if (array_key_exists("foo", $myArray)) {
echo "Foo does exist";
}
?>
if语句会说Foo确实存在,因为它在数组中。
同样适用于这些类型的数组。
<?php
$myArray = array(
"foo" => "a",
"bar" => "s",
"cat" => "d"
)
?>
http://php.net/manual/en/function.array-key-exists.php http://www.w3schools.com/php/func_array_key_exists.asp