php - 解码完整数组并对其部分进行编码

标签 php json decode

假设我有以下 JSON 字符串:

$json = '[{"Name":" Jim", "ID":"23", "Age": "0"},{"Name":" Bob", "ID":"53", "Age": "0"}]';

如何在更新的 JSON 字符串中仅显示属性“名称”?例如,我希望在更新的变量 $json2 中将代码转换为以下内容:

$json2 = '[{"Name":" Jim"},{"Name":" Bob"}]';

我尝试使用下面的代码执行此操作,但收到以下错误:

Notice: Undefined index: Name on line 9

$json = '[{"Name":" Jim", "ID":"23", "Age": "0"},{"Name":" Bob", "ID":"53", "Age": "0"}]';
$decode = json_decode($json, 'false'); 
$json2 = json_encode($decode['Name']);

echo $json2;

$json2 返回“null”。

最佳答案

$json = '[{"Name":" Jim", "ID":"23", "Age": "0"},{"Name":" Bob", "ID":"53", "Age": "0"}]';
$decoded = json_decode($json, true); 

$transformed = array_map(function (array $item) {
    return array_intersect_key($item, array_flip(['Name']));
}, $decoded);

$json2 = json_encode($transformed);

array_intersect_keythe easiest method从数组中提取特定的键,并在整个数组的 array_map 中执行此操作就是您所需要的。

关于php - 解码完整数组并对其部分进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38463460/

相关文章:

python - UnicodeEncodeError : 'charmap' codec can't encode - character maps to <undefined>, 打印函数

frame - 如何获取FLAC帧长度

php - 连接到目标机器上的 mySql 数据库的问题

javascript - Jquery 循环 Json 数组时仅附加最后一个值

php - 选择2 添加带有确认框的新标签

javascript - 如何从json键值中删除下划线

c++ - FFMPEG:在 h264rgb/libx264rgb 错误中解码视频

PHP MySQL 表连接 - 仅回显标识符一次,然后是所有匹配的项目

php openssl_decrypt() 参数(之前由 perl Crypt::CBC 加密)

php - youtube api 3.0 获取单个视频的信息