Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对整个数组进行解码并对其中的一部分进行编码_Php_Json_Decode - Fatal编程技术网

Php 对整个数组进行解码并对其中的一部分进行编码

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字符串:

$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);