假设我有以下 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_key
是 the easiest method从数组中提取特定的键,并在整个数组的 array_map
中执行此操作就是您所需要的。
关于php - 解码完整数组并对其部分进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38463460/