【发布时间】:2021-01-28 16:35:03
【问题描述】:
我有一个转储以下数组的 PHP 代码:
array(4) {
[0]=> string(79) "https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-0.m3u8 "
[1]=> string(79) "https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-1.m3u8 "
[2]=> string(79) "https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-2.m3u8 "
[3]=> string(78) "https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-3.m3u8"
}
我想从上面的数组中提取每个 URL 并将其转换为 JSON。 JSON 可能看起来像:
{"m3u8_1":"https:\/\/95.217.21.141\/hls\/2f04510c8f646cb3e03d5c063b190bd1611847725589-0.m3u8","m3u8_2":"https:\/\/95.217.21.141\/hls\/2f04510c8f646cb3e03d5c063b190bd1611847725589-1.m3u8","m3u8_3":"https:\/\/95.217.21.141\/hls\/2f04510c8f646cb3e03d5c063b190bd1611847725589-2.m3u8","m3u8_4":"https:\/\/95.217.21.141\/hls\/2f04510c8f646cb3e03d5c063b190bd1611847725589-3.m3u8"}
我不知道如何将其转换为 JSON。这里还有一个棘手的问题是,并非每次数组中都会有 4 个 URL。可能是 1 或 2 甚至 5。我如何检查数组有多少个 URL,然后根据它将其转换为 JSON。
我还尝试在将它放在这里之前搜索堆栈溢出,但我没有找到一个检查然后将其转换为 JSON 的方法
谢谢!
编辑#1
直接 json_encode 不起作用,因为 PHP 不会从包含 0 1 2 3 等字符的 json 返回值
【问题讨论】:
-
用
json_encode直接编码整个数组有什么问题? -
它会给出错误的 JSON。就像值
0123和 PHP 不允许在使用json_decode后从 JSON 中提取这些值@ -
啊,我明白了。所以,基本上,你需要的是循环这个数组并创建一个包含你想要的键的新数组。你可以使用
for或foreach,不管你的船如何。但这很基本。 -
是因为网址末尾的
.m3u8吗?如果是这样,那可能是其他任何东西,并且会改变您想要的键值 -
嗯,这很简单,你有没有尝试一下