将多个字符串转换为JSON数组

时间:2015-06-14 07:55:22

标签: php json

我有多个字符串如下所示:11-1616-1214-16

我将有多个这些,我需要将它们存储在JSON中。我需要以下列格式存储它:

[
  {
    "score_1": 11,
    "score_2": 16
  },
  {
    "score_1": 16,
    "score_2": 12
  },
  {
    "score_1": 14,
    "score_2": 16
  }
]

score_1是第一个数字,score_2是第二个数字。我怎么能用PHP做到这一点?

由于

2 个答案:

答案 0 :(得分:2)

两个步骤:

  1. 将字符串转换为相应的数据结构(例如stdClass对象的数组)。
  2. 将该数据结构转换为JSON。
  3. 注意:由于您已经知道了所需的输出,因此可以解析该输出以了解它在PHP中的表示形式,作为对第一步结果的建议。

答案 1 :(得分:2)

首先创建一个数组。接下来创建一个对象,然后explode连字符上的字符串,并在对象中存储intval'第一个和第二个数字。将该对象推入您的数组。重复尽可能多的字符串。最后,使用json_encode获取JSON编码的字符串。

$arr = [];

function addString($str, &$arr) {
    $str = explode("-", $str);
    $obj = new stdClass();
    $obj->score_1 = intval($str[0]);
    $obj->score_2 = intval($str[1]);
    $arr[] = $obj;
}

addString("11-16", $arr);
addString("16-12", $arr);

echo json_encode($arr);

<强>输出:

  

[{ “score_1”:11 “score_2”:16},{ “score_1”:16, “score_2”:12}]

编辑:更新了上面的代码以使用intval,因为OP在预期输出中的对象中有整数。