我能够在查询后创建数组。
<?
$results = array();
while($row = mysql_fetch_assoc($result))
{
$results[] = $row;
}
?>
我现在从查询结果中得到以下数组:
array(2) {
[0]=>
array(1) {
["form_type"]=>
string(6) "VF-302"
}
[1]=>
array(1) {
["form_type"]=>
string(6) "VF-301"
}
}
例如,如果&#34; VF-301&#34;值存在于数组中,php if语句会是什么?
<? //not working
if(in_array("VF-300", $results)){
echo "this value is in array";
} else {
echo "this value is not in array";
}
?>
答案 0 :(得分:1)
foreach($results as $result) {
if(in_array("VF-300", $result)){
echo "this value is in array";
} else {
echo "this value is not in array";
}
}
需要考虑嵌套数组
答案 1 :(得分:0)
您正在包含其他数组的数组中搜索VF-300
的值。
您需要循环所有值。如果您知道在从数据库填充数组时需要执行的操作,则可以使用该循环。
例如
while($row = mysql_fetch_assoc($result))
{
if(in_array("VF-300", $row)){
echo "this value is in array";
} else {
echo "this value is not in array";
}
$results[] = $row;
或者你需要再次循环。
答案 2 :(得分:0)
在这里,我想要做点什么。这是因为你的原始数组是由其他数组组成的,所以如果你只使用in_array,它会检查一个值,而不是成员中的值。这个功能适合你:
function in_array_m($needle,$haystack) {
return in_array(true,array_map(function($v) use($needle,$haystack) {
return in_array($needle,$v);
},$haystack));
}
典型的解决方案涉及循环,但我想弄得一团糟!
这个解决方案优于其他解决方案的优势在于你得到的是真或假,而不是每个子集的一个结果!