php - 将字符串转换为json

标签 php regex json

我有一个带有时间戳(24 小时时钟)和电视节目名称的字符串,格式如下所示:

21.45 bat 侠 23.30 小时报 00.20 新闻源 04.00 其他源 21.55 足球:美国 - 西类牙 23.30 火线

字符串可以是任意长度,并且我无法以任何方式修改字符串。我仍然想以我需要的方式使用该字符串作为 json。该字符串始终采用相同的格式。

我的目标是将字符串转换为如下所示:

{
  "shows": [
    {
        "show": "Batman",
        "time": "21.45"
    },
    {
        "show": "The Hour",
        "time": "23.30"
    },
    {
        "show": "Newsfeed",
        "time": "00.20"
    },
    {
        // etc...
    }
  ]
}

我用 PHP 来做这件事,但我对正则表达式真的很烂,它在我 2014 年的学习 list 上名列前茅:)

最佳答案

$code = '21.45 Batman 23.30 The Hour 00.20 Newsfeed 04.00 Otherfeed 21.55 Soccer: USA - Spain 23.30 The Wire';

preg_match_all('~(?P<time>\d+[.]\d+)\s*(?P<show>.*?)(?=\s*\d+[.]\d+|$)~', $code, $codeSplit);

$shows = array();
for($i = 0; $i <= count($codeSplit['time']); $i++) {
    $shows[] = array('show' => $codeSplit['show'][$i], 'time' => $codeSplit['time'][$i]);
}

$json = json_encode(array('shows' => $shows));


var_dump($json);

关于php - 将字符串转换为json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927138/

相关文章:

json - Flutter-在空调用方法 '[]'

php - MySQL 按连接值分组并获取每个组内的第一个 id (UUID)

javascript - 如何从模态提交 Bootstrap 表单

php 在运行时创建类方法

php - Laravel - 让用户在创建后插入类别并创建新类别(如果不存在)

json - 使用 Cheerio 遍历 html 表

json - 编写一个函数来解码通用 JSON。如何为 Codable.Protocol 提供参数?

c++ - 强制 QLineEdit 成为 double 值的集合

regex - 点元字符如何匹配换行符?

php - 困惑在哪里寻找那个<符号