json_decode从数组中删除null,false,true

时间:2015-03-25 03:46:55

标签: php arrays json wordpress codeigniter

我在下面有一个json结果。

$abc =  '{
    "id":"375",
    "name":"Nilesh Y",
    "email":"nilesh.yadav@test.co.in",
    "mobile":"9076330330",
    "tracking_number":null,
    "home_tagged_address_id":null,
    "office_tagged_address_id":null,
    "time":1427254525,
    "logged_in":true,
    "method":true,
    "error":null,
    "home_address":null,
    "office_address":null
 }';


$a = json_decode($abc,true,JSON_BIGINT_AS_STRING);

print_r($a);

在json_decode解码后,结果是。

Array ( [id] => 375 [name] => Nilesh Y [email] => nilesh.yadav@intelliswift.co.in [mobile] => 9076330330 [tracking_number] => [home_tagged_address_id] => [office_tagged_address_id] => [time] => 1427254525 [logged_in] => 1 [method] => 1 [error] => [home_address] => [office_address] => )

如果您看到结果,则会删除错误:null和home_address:null

means [home_address] => ""是空白的 我想打印数组中的空值,请告诉我如何做到这一点

3 个答案:

答案 0 :(得分:2)

使用var_dump而不是print_r。安装xdebug扩展,这将使var_dump的输出更好。

你知道吗? (http://3v4l.org/Y58fCvar_dump()将输出以下内容:

array(13) {
  'id' =>
  string(3) "375"
  'name' =>
  string(8) "Nilesh Y"
  'email' =>
  string(23) "nilesh.yadav@test.co.in"
  'mobile' =>
  string(10) "9076330330"
  'tracking_number' =>
  NULL
  'home_tagged_address_id' =>
  NULL
  'office_tagged_address_id' =>
  NULL
  'time' =>
  int(1427254525)
  'logged_in' =>
  bool(true)
  'method' =>
  bool(true)
  'error' =>
  NULL
  'home_address' =>
  NULL
  'office_address' =>
  NULL
}

您看,json_decode()正在按预期工作,您根本无法看到它,因为print_r将不会为NULL打印任何内容。

答案 1 :(得分:0)

检查结果为:

if($a['home_address']===null){
    //your code
}

答案 2 :(得分:0)

您已收到预期结果。 执行print_r时,不显示空值。 证明本身就是密钥存在而价值不存在。 你可以使用var_dump确认