从php对象构建json数据

时间:2013-11-08 19:04:16

标签: php json

我想建立一个Json对象来提供我的图形。我有以下代码来更改我的PHP对象。

    $rows = $this->Website_model->getGraphData();       

    $_rows = array();

    $i = 0;
    foreach ($rows as $key => $row) {
        foreach ($row as $column => $value) {
            $_rows[$i][] = $value;
        }
        $i++;
    }

    $rows = $_rows; 


    echo json_encode(array("sEcho" => intval($sEcho), "data" => $rows));
    die();  

我目前的输出如下:

array(24) {
  [0]=>
  array(3) {
    [0]=>
    string(7) "3283581"
    [1]=>
    string(10) "2013-10-16"
  }

看起来应该是这样的:

{"y":15,"x":"2012-11-19"},{"y":18,"x":"2012-11-19"} etc etc

如何将Y和X添加到我的数据中并注意我会得到正确的输出来提供我的图表?

/////////////////////////////////////////////// //////

我尝试了以下内容:

现在我正在使用以下代码:

    $rows = $this->Website_model->getGraphDataPositives();      

    $_rows = array();

    $i = 0;
    foreach ($rows as $key => $row) {
        foreach ($row as $column => $value) {
            $_rows[$i]['x'] = $value;
            $_rows[$i]['y'] = $value;
            $i++;
        }
    }   

这导致以下响应:

array(48) {
  [0]=>
  array(2) {
    ["x"]=>
    string(7) "3283581"
    ["y"]=>
    string(7) "3283581"
  }
  [1]=>
  array(2) {
    ["x"]=>
    string(10) "2013-10-16"
    ["y"]=>
    string(10) "2013-10-16"
  }

所以它还不行......应该说:

array(48) {
  [0]=>
  array(2) {
    ["x"]=>
    string(7) "3283581"
    ["y"]=>
    string(7) "2013-10-16"
  }
  [1]=>
  array(2) {
    ["x"]=>
    string(10) "1512116"
    ["y"]=>
    string(10) "2013-10-17"
  }

1 个答案:

答案 0 :(得分:0)

这将创建一个你想要的数组:

$rows = $this->Website_model->getGraphData(); 
$_rows = array();
$i = 0;
foreach ($rows as $key => $row) {
    $_rows[$i]['y'] = $rows[0];
    $_rows[$i]['x'] = $rows[1];
    $i++;
}

您的示例数据不正确。你有数组(3),但你只显示2个元素。同样在输出数据中你有3283581,y值是15和18.所以我无法猜测如何转换这些值。