数组的json_encode格式

时间:2017-03-30 14:05:35

标签: php arrays json

我无法在网上找到答案,部分原因是因为我不知道如何搜索这个。问题是以下数组的json_encode格式:

array(1) {
  [1441065600]=>
  array(4) {
    ["high"]=>
    float(1)
    ["low"]=>
    float(1)
    ["close"]=>
    float(1.28)
    ["open"]=>
    float(1.35)
  }
}

json_encode()中的输出是:

{"1441065600":{"high":1,"low":1,"close":1.28,"open":1.35}

但是我希望输出为:

[
 [1441065600,1,1,1.28,1.35]
]

任何人都可以通过正确的方法暗示这样做吗?

无法在FileSystemWatcher找到我的解决方案,因为我需要按时间戳分组作为关键字。

3 个答案:

答案 0 :(得分:0)

您想要实现的结果数组格式不正确 您将不得不遍历数组并创建一个新数组,其中键是值的一部分。

例如

$result = [];
foreach ($array as $key => $value)
    $result[] = array_merge([$key], $value);

echo json_encode($result);

答案 1 :(得分:0)

试一试:

foreach( $array as $key => &$item )
    $item = array( $key ) + array_values( $item );

echo json_encode( array_values( $array ) );
// OR
echo json_encode( current( array_values( $array ) ) ); // For array with single key

答案 2 :(得分:-1)

@Nick简单尝试这个逻辑你必须首先格式化数组然后编码该数组如下:

<?php
$arr = array(
            "1441065600" => array("high" => (float)1, "low" => (float)1, "close" => (float)1.28, "open" => (float)1.35)

            );
$newArr = array();
foreach ($arr as $key => $value) {
    $newArr[] = $key;
    foreach ($value as $key1 => $value1){
        $newArr[] = $value1;
    }
}
echo json_encode(array($newArr));

输出:

[[1441065600,1,1,1.28,1.35]]

请在此处查看https://eval.in/764582您想要的输出