使用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));


以上是使用php将每个数组值转换为json的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>