【问题标题】:Json encoding with PHP 5.3使用 PHP 5.3 进行 JSON 编码
【发布时间】:2013-02-09 15:45:14
【问题描述】:

我正在尝试将数据转换为 json,我可以对输出进行硬编码,但需要使用 MySQL 数据和一些代码动态生成代码来计算结果。 json 输出将采用以下格式:

    {
      "inits": {
"version": "18.05.04_EP1",
"source": "Live",
"lowid": "265067",
"highid": "265068",
"ql": "300",
"name": "Ofab Shark Mk 1",
"inits": [
  {
    "-init": "430",
    "-percent": "100",
    "-slider": "DEF>===========][<AGG"
  },
  {
    "-init": "530",
    "-percent": "90",
    "-slider": "DEF>==========][=<AGG"
  },
  {
    "-init": "630",
    "-percent": "81",
    "-slider": "DEF>=========][==<AGG"
  },
  {
    "-init": "730",
    "-percent": "72",
    "-slider": "DEF>========][===<AGG"
  },
  {
    "-init": "830",
    "-percent": "63",
    "-slider": "DEF>=======][====<AGG"
  },
  {
    "-init": "930",
    "-percent": "54",
    "-slider": "DEF>======][=====<AGG"
  },
  {
    "-init": "1030",
    "-percent": "45",
    "-slider": "DEF>=====][======<AGG"
  },
  {
    "-init": "1130",
    "-percent": "36",
    "-slider": "DEF>====][=======<AGG"
  },
  {
    "-init": "1290",
    "-percent": "27",
    "-slider": "DEF>===][========<AGG"
  },
  {
    "-init": "1590",
    "-percent": "18",
    "-slider": "DEF>==][=========<AGG"
  },
  {
    "-init": "1890",
    "-percent": "9",
    "-slider": "DEF>=][==========<AGG"
  },
  {
    "-init": "2190",
    "-percent": "0",
    "-slider": "DEF>][===========<AGG"
  }
]

} }

“inits”:[init, percent,slider] 需要在循环中才能生成结果。 我可以使用以下方法静态地做到这一点:

    array (
   'inits' => 
 array (
'version' => '18.05.04_EP1',
'source' => 'Live',
'lowid' => '265067',
'highid' => '265068',
'ql' => '300',
'name' => 'Ofab Shark Mk 1',
'inits' => 
array (
  0 => 
  array (
    '-init' => '430',
    '-percent' => '100',
    '-slider' => 'DEF>===========][<AGG',
  ),
  1 => 
  array (
    '-init' => '530',
    '-percent' => '90',
    '-slider' => 'DEF>==========][=<AGG',
  ),
  2 => 
  array (
    '-init' => '630',
    '-percent' => '81',
    '-slider' => 'DEF>=========][==<AGG',
  ),
  3 => 
  array (
    '-init' => '730',
    '-percent' => '72',
    '-slider' => 'DEF>========][===<AGG',
  ),
  4 => 
  array (
    '-init' => '830',
    '-percent' => '63',
    '-slider' => 'DEF>=======][====<AGG',
  ),
  5 => 
  array (
    '-init' => '930',
    '-percent' => '54',
    '-slider' => 'DEF>======][=====<AGG',
  ),
  6 => 
  array (
    '-init' => '1030',
    '-percent' => '45',
    '-slider' => 'DEF>=====][======<AGG',
  ),
  7 => 
  array (
    '-init' => '1130',
    '-percent' => '36',
    '-slider' => 'DEF>====][=======<AGG',
  ),
  8 => 
  array (
    '-init' => '1290',
    '-percent' => '27',
    '-slider' => 'DEF>===][========<AGG',
  ),
  9 => 
  array (
    '-init' => '1590',
    '-percent' => '18',
    '-slider' => 'DEF>==][=========<AGG',
  ),
  10 => 
  array (
    '-init' => '1890',
    '-percent' => '9',
    '-slider' => 'DEF>=][==========<AGG',
  ),
  11 => 
  array (
    '-init' => '2190',
    '-percent' => '0',
    '-slider' => 'DEF>][===========<AGG',
  ),
),

), )

但是,我不知道如何调用任何方法来填充每个数组的数组数据(init、percent、slider)。我是 PHP 新手,很难找到 PHP 的正确用法,我是一名 c# 开发人员。如果有人可以提供帮助,我将不胜感激!

【问题讨论】:

  • 附加到带有$data["inits"]["inits"][] = array(430, 100, "DEF"); 左右的数组。
  • 您是说 PHP 5.3 吗?上一个 4.3 版本是在 2005 年,整个 PHP 4 自 2007 年底以来已正式停产。

标签: php json encode


【解决方案1】:

您应该使用for。我不知道你到底想填什么,但代码如下:

//Let $ar be the array you have posted
for($i=0;$i<count($ar["inits"]["inits"]); $i++) {
   $ar["inits"]["inits"][$i]["-slider"]="something";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2020-09-01
    相关资源
    最近更新 更多