【问题标题】:json to variable in phpjson到php中的变量
【发布时间】:2023-04-08 13:51:01
【问题描述】:

我有 1 个表包含 json 数据,如下所示。

{"14":"17","17":"29","18":"74","19":["80"],"20"["82","83","84"],"21":["85","86","87"],"23":""}

我想在我的 php 页面中将此数据转换为变量。

如您所见,每个键都可以是变量,

$id_14 = 17
$id_17 = 29
$id_18 = 74
$id_19 = 80
$id_20 = 82, 83, 84
$id_21 = 85, 86, 87
$id_23 = null or empty

我正在使用json_decode 方法,但我无法完全转换它。 提前致谢。

【问题讨论】:

标签: php json for-loop foreach


【解决方案1】:
$arr = json_decode($str, true);
// create array, referencing to variables
$vars = [14 => &$var_14,.. 20 => &$var_20,..];
foreach($vars as $k=>&$var) {
  // Get corresponding array value
  if(isset($arr[$k])) {
     if (is_array($arr[$k])) {
       $var = implode(',', $arr[$k]);
     }
     else {
       $var = $arr[$k];
    }
  }
  else {
    // if does not present in json array set default value
    $var = false;
  }
}
unset($vars);
echo $var_20; // 82,83,84

【讨论】:

  • 这段代码运行良好,但我需要一些修改。当我将所有 id 添加到 $vars 中时,is_array 块会抛出异常,例如:您搜索了 $var_14,我正在搜索 $var_14、$var_15、$var_20。我的数据有时有 $var_14,有时有。如何设置这个 $vars 数组动态?
  • splash58 请帮帮我,例如: $vars = [14 => &$var_14, 20 => &$var_20,18 => &var_18] 如果 json 数据中没有 18,is_array抛出异常,结果异常。
  • @ŞakirBostancı 添加一张支票。我已经更新了答案
猜你喜欢
  • 2018-12-06
  • 2012-08-28
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 2021-10-03
  • 1970-01-01
  • 2020-04-01
相关资源
最近更新 更多