我有一个带有时间戳(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/