【问题标题】:How to check if a variable even exist after decode JSON?如何在解码 JSON 后检查变量是否存在?
【发布时间】:2021-05-01 01:12:56
【问题描述】:

我有这个 JSON 字符串。

[
   {
     "name": "user_title",
     "value": "Bapak."
   },
   {
     "name": "user_firstname",
     "value": "Test"
   },
   {
     "name": "user_lastname",
     "value": "XXX"
   }
]

这个字符串是动态生成的。它可能或多或少。我使用 JSON 解码 在 PHP 中处理它。

$json_form      = json_decode($json_string,true);

$user_title     = $json_form[0]['value'];
$user_firstname = $json_form[1]['value'];
$user_lastname  = $json_form[2]['value'];

如何检查字符串中是否存在变量 user_title?

如果存在,我应该得到该值,但如果不存在,则意味着 $user_title = NULL

【问题讨论】:

标签: php json


【解决方案1】:

您可能需要考虑使用 array_column 将 JSON 映射到键/值数组;那么很容易检查一个值的存在。例如:

$json_form = json_decode($json_string, true);
$values = array_column($json_form, 'value', 'name');

$user_title     = $values['user_title'];
$user_firstname = $values['user_firstname'];
$user_lastname  = $values['user_lastname'];

echo "title: $user_title\nfirst name: $user_firstname\nlast name: $user_lastname\n";

您的样本数据的输出是:

title: Bapak.
first name: Test
last name: XXX

在缺少键时添加默认值也很容易,例如:

$user_title     = $values['user_title'] ?? '';

【讨论】:

    猜你喜欢
    • 2010-10-25
    • 2018-02-17
    • 1970-01-01
    • 2014-09-08
    • 2015-12-01
    • 2014-01-30
    • 2012-07-05
    • 2018-08-13
    相关资源
    最近更新 更多