【问题标题】:Convert each array value into json using php使用php将每个数组值转换为json
【发布时间】: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。就像值 0 1 2 3 和 PHP 不允许在使用 json_decode 后从 JSON 中提取这些值@
  • 啊,我明白了。所以,基本上,你需要的是循环这个数组并创建一个包含你想要的键的新数组。你可以使用forforeach,不管你的船如何。但这很基本。
  • 是因为网址末尾的.m3u8 吗?如果是这样,那可能是其他任何东西,并且会改变您想要的键值
  • 嗯,这很简单,你有没有尝试一下

标签: php arrays json


【解决方案1】:

这样就可以了:

$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));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2015-07-02
    • 2016-07-07
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    相关资源
    最近更新 更多