【问题标题】:Php PDO array in jsonjson 中的 Php PDO 数组
【发布时间】:2014-04-30 20:19:42
【问题描述】:

她我有这个代码:

foreach($dates as $date){

     $result = $conn->prepare("SELECT naziv, vrednost FROM track_aktivnosti WHERE id_akt = :id_akt AND datum = :datum");

     $result->execute(array(':id_akt' => '22', ':datum' => $date['datum']));
     foreach($result as $r) {
        $m = array();
             $m[] = $date['datum'].array('v' => (int) $r['vrednost']);
         $rows1[] =  array('c' => $m);
        }
         $table['rows'] = $rows1;

}

我得到:rows":[{"c":["2013-04-01Array"]},{"c":["2013-04-01Array"]},

如何在 JSON 中显示数据而不是“数组”?

【问题讨论】:

  • 您将在回显之前在数组上使用json_encode() 函数。
  • 你希望你的 JSON 看起来像什么?或者你希望它是什么样子?
  • "rows":[{"c":[{"v":2013-04-01},{"v":"0"},{"v":"0"} ,{"v":"0"},

标签: php arrays json


【解决方案1】:
$m[] = $date['datum'].array('v' => (int) $r['vrednost']);

此行执行字符串连接,将后面的数组隐式转换为字符串,从而产生Array 输出。

你的意思可能更接近于

$m[] = array( $date['datum'], array('v' => (int) $r['vrednost']) );

或类似的东西。为了确保你必须给我们一个你真正想看到的输出的例子,但我认为在任何情况下给定点的字符串连接都是错误的。

编辑

在你发表评论后,我猜你想要这个:

$rows1 = array();
foreach($dates as $date){

  $result = $conn->prepare("SELECT naziv, vrednost FROM track_aktivnosti WHERE id_akt = :id_akt AND datum = :datum");

  $result->execute(array(':id_akt' => '22', ':datum' => $date['datum']));
  $m = array( array( 'v' => $date['datum'] ) );
  foreach($result as $r) {
    $m[] = array('v' => (int) $r['vrednost']);
  }
  $rows1[] =  array('c' => $m);

  $table['rows'] = $rows1;
}

如果正确,您的订单完全取消。你想为每个结果集初始化一个新的$m(== 每个日期),首先用日期填充它,添加数据库中的所有数据并将其推送到你的结果数组。

在你之后

【讨论】:

  • 嗯,不,我需要得到这个 json 输出:"rows":[{"c":[{"v":2013-04-01},{"v":"0 "},{"v":"0"},{"v":"U 0"}, ... ...等
  • 我也试试这个:foreach($result as $r) { $m = array(); $m[0]=array('v' => $date['datum']); $m[] = array('v' => (int) $r['vrednost']); $rows1[] = array('c' => $m); } $table['rows'] = $rows1;但不像我想要的
  • 嗯,现在我明白了:"rows":[{"c":{"v":"2013-04-01","0":{"v":0}, "1":{"v":0},"2":{"v":0},"3":{"v":0},"4":{"v":0}}}, {"c":{"v":"2013-09-08","0":{"v":0}}},{"c":{"v":"2014-06-25", "0":{"v":0}}}]} 不像我想要的......
  • @gmaestro 我的错。忘记了array()
  • @gmaestro 所以最后一次编辑不适合你? (有 2 个 array() 在内部 foreach 之前在 $m 之后调用)。
猜你喜欢
  • 2015-01-30
  • 1970-01-01
  • 2017-01-16
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
相关资源
最近更新 更多