我有firePHP所以我确切知道变量是什么,但我无法弄清楚为什么这段代码不会改变它。
我从mySQL调用$ query接收(如果返回则生成[{"type":"2"}]
)
我有4种可能的类型,事物可以是多种类型(即[{"type":"1"},{"type":"2"}]
)
现在我想读取这些数据,并根据它的类型运行各种其他函数,即:如果它只是类型2,则调用函数TWO,如果它是类型1和2,则调用函数ONE和函数TWO。我认为如果我将所有数据移动到另一个数组中,这将是最简单的。
以下是我目前的代码:
$result = array('message'=>false, 'money'=>false, 'glasses'=>false, 'exclamation'=>false);
if (in_array('1',$query)) {$result['message'] = true;}
if (in_array('2',$query)) {$result['money'] = true;}
if (in_array('3',$query)) {$result['glasses']=true;}
if (in_array('4',$query)) {$result['exclamation']=true;}
echo json_encode($result);
然而,这不会更新$ result数组(因为我可以在firePHP中告诉$message
的所有值都是false
。因此我假设我的if语句有问题,但是什么?
答案 0 :(得分:1)
我不确定$query
的值,但是如果它是这样的话:
array [0 => '{"type":"2"}']
你必须使用:
in_array('{"type":"2"}',$query)
因为那是你变量的值。
答案 1 :(得分:0)
是因为$ query中返回的结果是数组数组,因此in_array只搜索顶级而不是子级别?看起来你想要的是递归搜索$ query。