Php 对整个数组进行解码并对其中的一部分进行编码
假设我有以下JSON字符串:Php 对整个数组进行解码并对其中的一部分进行编码,php,json,decode,Php,Json,Decode,假设我有以下JSON字符串: $json = '[{"Name":" Jim", "ID":"23", "Age": "0"},{"Name":" Bob", "ID":"53", "Age": "0"}]'; 如何仅在更新的JSON字符串中显示属性“Name”?例如,我希望在更新的变量$json2中将代码转换为: $json2 = '[{"Name":" Jim"},{"Name":" Bob"}]'; 我尝试使用以下代码执行此操作,但收到以下错误: 注意:未定义索引:第9行的名称 $js
$json = '[{"Name":" Jim", "ID":"23", "Age": "0"},{"Name":" Bob", "ID":"53", "Age": "0"}]';
如何仅在更新的JSON字符串中显示属性“Name”?例如,我希望在更新的变量$json2
中将代码转换为:
$json2 = '[{"Name":" Jim"},{"Name":" Bob"}]';
我尝试使用以下代码执行此操作,但收到以下错误:
注意:未定义索引:第9行的名称
$json2
返回“null”。对于PHP5.3+:
<?php
$json = '[{"Name":" Jim", "ID":"23", "Age": "0"},{"Name":" Bob", "ID":"53", "Age": "0"}]';
$decode = json_decode($json, true);
$newArray = array_map(function ($array) {
return ['Name' => $array['Name']];
}, $decode);
echo json_encode($newArray);
array\u intersect\u key
是从数组中提取特定的键,在整个数组的array\u map
中执行此操作就是您要寻找的。$decode[0]['Name']您有一个项目数组,而不仅仅是一个项目。您至少需要在只返回名字的项目上循环。@B.Kocaman。$decode=json\u decode($json,true)$json2=json_编码(数组_列($decode,'Name'))代码>您好,谢谢您的回复。返回[“Jim”,“Bob”]
而我想要'[{“Name”:“Jim”},{“Name”:“Bob”}]
您的“false”表示true:)
<?php
$json = '[{"Name":" Jim", "ID":"23", "Age": "0"},{"Name":" Bob", "ID":"53", "Age": "0"}]';
$decode = json_decode($json, true);
$newArray = array_map(function ($array) {
return ['Name' => $array['Name']];
}, $decode);
echo json_encode($newArray);
$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);