我有这个数组
Array
(
[result] => Array
(
[status] => nok
[reason] => Character not found.
)
[code] => 404
[content_type] => application/json;charset=utf-8
)
我想查看[状态],如果是“nok”,则应显示“匹配找到”。
我的代码:
$info = $r['result']['status'];
if (in_array("nok", $info))
{
echo "Match found";
}
else
{
echo "Match not found";
}
?>
答案 0 :(得分:1)
函数in_array检查数组中是否存在值,不要给数组提供字符串。
您有两种选择:
将您的代码更改为:
if (isset($r['result']) && in_array("nok", $r['result'])) { //add isset to not raise a warning when it doesn't exists
或者如果结果始终相同,则可以执行此操作:
if (isset($r['result']['status']) && $r['result']['status'] === 'nok') { //add isset to not raise a warning when it doesn't exists
答案 1 :(得分:0)
在你的情况下:
$r['result']['status']
不是数组而是字符串。
所以你可以要求:
if(in_array("nok", $r['result']))
或
if($r['result']['status'] == "nok")
答案 2 :(得分:0)
$ info不是数组,它是一个字符串。试试这个:
if (in_array("nok", $r['result']))
{
echo "Match found";
}
else
{
echo "Match not found";
}
或
if ($r['result']['status'] == "nok"){
答案 3 :(得分:0)
您无需在此代码中使用int j = 0;
while(j < i){
result *= 2;
j++;
}
。 in_array在线性数组中搜索字符串值...所以这就是你使用它的方式:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:host="www.tennisrecruiting.net" />
<!--<data android:pathPattern="/.*" />-->
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
您可以使用普通逻辑进行比较,因为您要将字符串与字符串进行比较:
in_array