Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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数组到json_Php_Arrays_Json_Data Conversion - Fatal编程技术网

不带索引的PHP数组到json

不带索引的PHP数组到json,php,arrays,json,data-conversion,Php,Arrays,Json,Data Conversion,我是PHP新手,我正在尝试将数组转换为json,而不使用索引 例如,我有: [{"name":"Dean"},{"last_name":"Don"},{"age":31},{"height":181}] 我需要它是单个json对象: { "name":"Dean, "last_name":"Don", "age":31, "height":181 } 我尝试使用json\u encode(),但得到的结果不正确,我尝试指定事件 JSON\u FORCE\u OBJECT,它放置了我不想要的索

我是PHP新手,我正在尝试将数组转换为json,而不使用索引

例如,我有:

[{"name":"Dean"},{"last_name":"Don"},{"age":31},{"height":181}]
我需要它是单个json对象:

{
"name":"Dean,
"last_name":"Don",
"age":31,
"height":181
}
我尝试使用
json\u encode()
,但得到的结果不正确,我尝试指定事件
JSON\u FORCE\u OBJECT
,它放置了我不想要的索引

有人知道怎么解决吗? 谢谢你

你试过了吗
json\u编码(数组值($array))

您尝试过吗
json\u编码(数组值($array))

您可以使用
json\u解码
将json转换为数组。使用
array\u reduce
创建新数组。使用
json\u encode
再次将数组转换为json

$str = '[{"name":"Dean"},{"last_name":"Don"},{"age":31},{"height":181}]';

//Convert the json into array
$arr = json_decode($str, true);

//Make the multi dementional array into an associative array
$arr = array_reduce($arr, function($c, $v){
    foreach ($v as $key => $val) $c[$key] = $val;
    return $c;
}, array());

//Convert the array to json
$result = json_encode($arr);

echo $result;
这将导致:

{"name":"Dean","last_name":"Don","age":31,"height":181}

您可以使用
json\u decode
将json转换为数组。使用
array\u reduce
创建新数组。使用
json\u encode
再次将数组转换为json

$str = '[{"name":"Dean"},{"last_name":"Don"},{"age":31},{"height":181}]';

//Convert the json into array
$arr = json_decode($str, true);

//Make the multi dementional array into an associative array
$arr = array_reduce($arr, function($c, $v){
    foreach ($v as $key => $val) $c[$key] = $val;
    return $c;
}, array());

//Convert the array to json
$result = json_encode($arr);

echo $result;
这将导致:

{"name":"Dean","last_name":"Don","age":31,"height":181}

JSON的第一位看起来像是对键值对数组进行编码的结果,如下所示:

$data = [
    ['name' => 'Dean'],
    ['last_name' => 'Don'],
    ['age' => 31],
    ['height' => 181]
];
如果这就是您要开始的,那么您可以迭代属性集并构造一个将编码为单个对象的实体

foreach ($data as $attribute) {
    $entity[key($attribute)] = reset($attribute);
}

echo json_encode($entity);

正如评论中提到的,在代码的前面可能有更好的方法来实现这一点,因此,您可以首先创建所需的实体,而不是像
$data
这样的示例,在输出它之前,您必须重新处理该示例。

JSON的第一位看起来像是对键值对数组进行编码的结果,如下所示:

$data = [
    ['name' => 'Dean'],
    ['last_name' => 'Don'],
    ['age' => 31],
    ['height' => 181]
];
如果这就是您要开始的,那么您可以迭代属性集并构造一个将编码为单个对象的实体

foreach ($data as $attribute) {
    $entity[key($attribute)] = reset($attribute);
}

echo json_encode($entity);

如注释中所述,可能有一种更好的方法可以在代码的前面执行此操作,因此您可以首先创建所需的实体,而不是像
$data
示例那样,在输出之前必须重新处理。

另一种方法是解码、合并和重新编码:

$json = '[{"name":"Dean"},{"last_name":"Don"},{"age":31},{"height":181}]';
$data = json_decode($json,true); // decode
$data = array_merge(...$data); // merge
echo json_encode($data, JSON_PRETTY_PRINT); // recode
输出:

{
    "name": "Dean", 
    "last_name": "Don", 
    "age": 31, 
    "height": 181 
}

另一种方法是解码、合并和重新编码:

$json = '[{"name":"Dean"},{"last_name":"Don"},{"age":31},{"height":181}]';
$data = json_decode($json,true); // decode
$data = array_merge(...$data); // merge
echo json_encode($data, JSON_PRETTY_PRINT); // recode
输出:

{
    "name": "Dean", 
    "last_name": "Don", 
    "age": 31, 
    "height": 181 
}

让我们看看你试过什么,您可能比您想象的更接近于答案当然,最好看看您是如何创建第一个JSON字符串并修复它的,而不是尝试处理一个糟糕的结果,因为您编写的数组不是可用的php数组。@T30我认为这是一个对象数组的JSON字符串表示,向我们展示您以前使用的代码创建初始JSON字符串并向我们展示您的尝试,您可能比您想象的更接近于答案当然,最好看看您是如何创建第一个JSON字符串并修复它的,而不是尝试处理一个糟糕的结果,因为您编写的数组不是可用的php数组。@T30我认为这是一个对象数组的JSON字符串表示,向我们展示您以前使用的代码创建初始JSON字符串修复初始创建错误会更好,因为初始JSON字符串对man或beastIt没有任何用处。修复初始创建错误会更好,因为初始JSON字符串对man或Beast没有任何用处。您可以解释这将如何帮助创建单个JSON对象吗?请参阅更多信息此处的详细信息:不确定该链接与此问题有何关系您能否解释这将如何帮助创建单个JSON对象?请参阅此处的更多详细信息:不确定该链接与此问题有何关系我同意
array\u merge
非常适合此问题。我同意
array\u merge
非常适合此问题。