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

如何提取JSON数组中指定部分元素并重新构建JSON数组

PHP提取数组指定键值对生成目标JSON实现方案

直接在PHP数组层做键筛选即可,不需要额外处理全量JSON的编解码冗余逻辑,核心使用PHP原生数组函数就能高效实现,具体操作逻辑:

  • 定义需要保留的目标键名列表
  • 用键交集函数提取对应键值对,自动保留原键值映射关系
  • 将筛选后的数组编码为JSON格式

完整实现代码:

<?php
// 原始定义数组
$d = array(
    'key1' => 9,
    'key2' => 10,
    'key3' => 20,
    'key4' => 60,
    'key5' => 50,
);

// 配置需要提取的键,按需增删即可
$targetKeys = ['key3', 'key5'];
// 提取指定键对应的键值对
$filteredData = array_intersect_key($d, array_flip($targetKeys));

// 编码为目标JSON数组
$resultJson = json_encode($filteredData, JSON_UNESCAPED_UNICODE);

函数说明

  • array_flip($targetKeys):将键名列表的键值翻转,把要提取的键名转为数组的键,适配交集计算的入参格式
  • array_intersect_key():返回原数组中键名存在于目标键列表的所有元素,不会改动原键和对应值的映射关系,比手动foreach循环判断更简洁高效
  • json_encode()传入JSON_UNESCAPED_UNICODE参数是为了避免中文被转义为Unicode编码,无中文场景可省略该参数

结果验证

上述代码执行后,筛选得到的数组结构为:

array(
    'key3' => 20,
    'key5' => 50
)

最终生成的JSON内容为:

{"key3":20,"key5":50}

如果你已经通过json_decode拿到了解码后的全量PHP数组,直接将代码中的$d替换为你解码得到的数组变量即可,不需要修改其他逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 03:06:17