You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中将多单键JSON对象数组转换为单对象数组的实现方法

解决PHP中JSON数组格式转换的问题

嘿,我来帮你搞定这个格式转换!你现在的输出是一堆单键对象组成的数组,想要把它转换成以日期为键、对应带链接的HTML内容为值的单一JSON对象对吧?而且看起来同一个日期下有重复的标题,还得处理下重复的问题对吧?

下面是具体的PHP实现步骤和代码:

思路解析

  1. 遍历原始数组,把每个条目中的日期和标题提取出来
  2. 对同一个日期下的标题进行去重(避免重复内容)
  3. 将每个标题转换成指定的<a>标签格式
  4. 把同一个日期下的所有链接合并(用你想要的分隔符,比如<br>)
  5. 最后把整理好的数组转换成JSON字符串

代码实现

// 你的原始结果数组
$originalArray = [
    ["05-10-2018" => "Seeing dads differently"],
    ["05-10-2018" => "Extraordinary ordinary Britain"],
    ["05-10-2018" => "Roll up for the Social Science Market!"],
    ["05-10-2018" => "Why do we use it?"],
    ["05-10-2018" => "Extraordinary ordinary Britain"]
];

$finalArray = [];

foreach ($originalArray as $item) {
    // 提取当前条目的日期和标题(每个item只有一组键值对)
    $date = key($item);
    $title = trim(current($item)); // 顺便去掉标题里的多余空格,比如第三个标题的开头空格
    
    // 跳过重复的标题,避免生成重复链接
    if (isset($finalArray[$date]) && strpos($finalArray[$date], $title) !== false) {
        continue;
    }
    
    // 生成带链接的HTML,这里的href可以替换成你实际的文章URL
    // 比如如果有一个$urlMap数组存储标题对应URL,就改成$urlMap[$title]
    $linkHtml = "<a href=\"/articles/{$title}\" target=\"_blank\">{$title}</a>";
    
    // 如果该日期已经有内容,就追加新的链接(用<br>分隔,你可以换成其他分隔符)
    if (isset($finalArray[$date])) {
        $finalArray[$date] .= "<br>" . $linkHtml;
    } else {
        $finalArray[$date] = $linkHtml;
    }
}

// 转换为JSON,保留原始的HTML格式(不转义斜杠和特殊字符)
$finalJson = json_encode($finalArray, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

// 输出结果
echo $finalJson;

代码说明

  • key($item)和current($item):用来提取每个单键对象的日期(键)和标题(值),因为你的原始数组每个元素都是只有一个键值对的对象
  • 去重逻辑:用strpos检查当前标题是否已经在该日期的内容里,避免重复生成链接
  • trim($title):处理标题里的多余空格(比如你原始数组里第三个标题开头有空格)
  • json_encode的参数:JSON_UNESCAPED_SLASHES避免转义/,JSON_UNESCAPED_UNICODE避免转义中文(如果标题有中文的话)

运行这段代码后,你会得到类似这样的JSON结果:

{
    "05-10-2018": "<a href=\"/articles/Seeing dads differently\" target=\"_blank\">Seeing dads differently</a><br><a href=\"/articles/Extraordinary ordinary Britain\" target=\"_blank\">Extraordinary ordinary Britain</a><br><a href=\"/articles/Roll up for the Social Science Market!\" target=\"_blank\">Roll up for the Social Science Market!</a><br><a href=\"/articles/Why do we use it?\" target=\"_blank\">Why do we use it?</a>"
}

内容的提问来源于stack exchange,提问作者PRIYANKA MORE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:28:22