搜索值“in_array”

时间:2016-06-11 19:57:33

标签: php arrays echo

我有这个数组

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";
  }
?>

4 个答案:

答案 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