5

我有以下 JSON:

$p={
  "main1" : [
    {
      "child1" : valueA,
      "child2" : valueB,
      "child3" : valueC,
    },
    {
      "child1" : value1,
      "child3" : value3,
    },
  ],
  "main2" : "valueMain2"
}

必须检查元素child2是否存在,然后取值。我正在使用 json_decode:

$response = json_decode($p,true);

如何在 PHP 中检查元素是否存在?我必须制作单独的功能还是有内置功能?

4

3 回答 3

11

与检查是否存在任何数组的键的方式相同:

isset($array['key'])array_key_exists('key',$array)

于 2013-03-16T01:23:03.247 回答
1

Here's how I've been doing it.

$child2exists = count($response['main1']['child2']);

If ($child2exists == 1) 
{ 
    echo "EXISTS"; 
}
else
{ 
    echo "DOESNT EXIST"; 
}

Hope this helps.

于 2013-03-16T01:27:25.970 回答
1

在 2022 / php 5.1.0 及更高版本中,使用

$objJsn    = json_decode    ( $strJsnFromFile     );
$bolExists = property_exists( $objJsn, 'NodeName' );

来自https://www.php.net/manual/en/function.property-exists.php与数组相关的答案对于 php 7.4.9 是错误的

于 2022-01-08T15:47:22.327 回答