簡體   English   中英

PHP 檢查數組鍵是否存在

[英]PHP check if array key exist

我有一個數組,在該數組中我有更多的元素。 我想檢查是否存在特定元素

  $jsondata = file_get_contents('php://input');
  $jsonobj = json_decode($jsondata, true);

可能性 1

$jsonobj=Array(
      [user] => Array
            (
              [userId] => 1501148600220
              [locale] => en-US
                // no TOKEN
            )
);

可能性2

$jsonobj=Array(
          [user] => Array
                (
                  [userId] => 1501148600220
                  [locale] => en-US
                  [token] => 12345    // TOKEN exist
                )
               );

以下是解碼后的 JSON。
接收的 JSON 有時可能包含可能不包含元素“令牌”。

我想檢查 $jsonobj 是否有元素“令牌”

    if (array_key_exists('token', $jsonobj)) {
    echo "Element is in the array";
    }

我如何根據我的數組的結構來檢查這個?

更新

有時,jsonobj 可能不包含任何內容。 它可能是空的。 如果它是空的,我會收到一個錯誤

PHP Warning:  array_key_exists() expects parameter 2 to be array
 if (array_key_exists('token', $jsonobj['user'])) {
  echo "Element is in the array";
 }

您只需要在多維$jsonobj數組中傳遞索引'user'

像這樣

if (array_key_exists('token', $jsonobj['user'])) {
  echo "Element is in the array";
 }

修改:-

$jsonobj=json_decode($jsonobj,true);
if(!empty($jsonobj['user'])&&is_array($jsonobj['user']))
{
    if (array_key_exists('token', $jsonobj['user'])) {
        echo "Element is in the array";
    }
}

你必須檢查你的$jsonobj數組鍵是user 所以,如果你想檢查user數組鍵,那么你應該這樣寫,

if (array_key_exists('token', $jsonobj['user'])) 
{
  echo "Element is in the array";
}

請參閱本手冊

foreach($jsonobj as $obj => $val){
    if(is_array($val)){     
        if(array_key_exists('token', $val)){
            echo 'exist';
        }else{
            echo 'not exist';
        }
    }
}

您始終可以使用這一行來檢查數組中是否存在嵌套鍵:

Arr::has($jsonobj, 'user.token');
// Or
Arr::has($jsonobj, ['user', 'token']);

如果您想了解有關此方法或其他在處理多維數組時有用的方法的更多信息,請查看此php 數組庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM