从php对象构建json数据

从php对象构建json数据,php,json,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]

我想构建一个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
它应该是这样的:

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"
  }

这将创建一个如您所愿的数组:

$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。因此,我无法猜测如何转换这些值

您确定这是您当前的输出吗?从您的代码和问题中,很难理解您试图实现的是什么。请澄清。当前输出是我在Firebux控制台中作为GET请求的答案得到的输出。@Kleskowy我试图实现的是以类似于上一个examle的格式将数据放入名为qm.graphData的javascript变量中。这将加载到我的站点上的xgrap。数据来自我的控制器(在codeigniter MVC结构中),我想我不是很清楚。。输出应该是{“y”:3283581,“x”:“2013-10-16”}等等。。。数组应包含2而不是3:)//此解决方案出现以下错误致命错误:无法在//apps.php第64行的数组中使用stdClass类型的对象。第64行为:$_rows[$I]['y']=$row[0];这意味着行是一个对象,而不是像示例数据中所示的数组。我无法猜测要编写代码的对象的成员是什么。我需要帮助的是在foreach循环之前的$rows的var_转储。