使用php将每个数组值转换为json
我有一个转储以下数组的 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 个 URLS 在数组中。它可能是 1 或 2 甚至 5。我如何检查数组有多少个 URL,然后根据它将其转换为 JSON。
我还尝试在将堆栈溢出放在这里之前搜索它,但我没有找到一个检查然后将其转换为 JSON
谢谢!
编辑 #1
直接 json_encode 将不起作用,因为 PHP 不会从 json 返回值,其中包含诸如 0 1 2 3
回答
这可以解决问题:
$input = [
"https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-0.m3u8",
"https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-1.m3u8",
"https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-2.m3u8",
"https://95.217.21.141/hls/2f04510c8f646cb3e03d5c063b190bd1611847725589-3.m3u8"
];
$output = [];
$i = 1;
foreach($input as $url) {
$output['m3u8_' . $i] = $url;
$i++;
}
print(json_encode($output));