質問

2011-08-07 18 views
1

I次のコードを持っている:質問

array(30) { 
    [0]=> 
    array(2) { 
    ["DEPARTURE_TIME"]=> 
    string(5) "12:00" 
    ["TIME"]=> 
    string(2) "99" 
    } 
    [1]=> 
    array(2) { 
    ["DEPARTURE_TIME"]=> 
    string(5) "12:15" 
    ["TIME"]=> 
    string(3) "105" 
    } 
    [2]=> 
    array(2) { 
    ["DEPARTURE_TIME"]=> 
    string(5) "12:30" 
    ["TIME"]=> 
    string(3) "115" 
    } 
    [3]=> 
    array(2) { 
    ["DEPARTURE_TIME"]=> 
    string(5) "12:45" 
    ["TIME"]=> 
    string(3) "122" 
    } 

} 

私は、これは、この形式のようにしたくない、私が欲しい:

$db = Frapi_Database::getInstance(); 
     $origin = $this->getParam('origin', self::TYPE_STRING); 
     $destination = $this->getParam('destination', self::TYPE_STRING); 
      $stmt = $db->prepare("SELECT DEPARTURE_TIME, TIME FROM TRAVELTIME WHERE ORIGIN = ? AND DESTINATION = ?"); 
      $stmt->execute(array($origin, $destination)); 
      //$time = $stmt->fetchColumn(); 
     $this->data = $stmt->fetchAll(PDO::FETCH_ASSOC); 
     var_dump($this->data); 

これは、しかし、私のような何かを与えますそれがなければ:

{"DEPARTURE_TIME":"12:00","TIME":"99"}, {"DEPARTURE_TIME":"12:15","TIME":"123"} and so on 

私はjson_decodeを行なったし、私が得た:

{"DEPARTURE_TIME":"12:00","0":"12:00","TIME":"99","1":"99"},{"DEPARTURE_TIME":"12:15","0":"12:15","TIME":"105","1":"105"} 

は、すべてのケースについては、なぜこれです

+0

を使用することができますか? –

+0

JSON/JavaScriptオブジェクトの配列が必要ですか?あなたが望むなら 'echo json_encode($ this-> data)'を使うことができます! – Shef

+0

はい私はjsonの出力をしたいが、json_decodeを実行すると私に間違った出力が出る – aherlambang

答えて

1
このケースでは

print implode(', ', array_map(function($a){ 
    print '{"DEPARTURE_TIME":"'.$a["DEPARTURE_TIME"].'","TIME":"'.$a['TIME'].'"}'; 
})); 

を知らないあなたは、あなたはJSON出力をしたいjson_encode

$this->data = $stmt->fetchAll(PDO::FETCH_OBJ); // as I check it's ok to use PDO_FETCH_ASSOC too 
json_encode($this->data); 
+0

fetchオブジェクトが私に500のHTTPエラーを与える..なぜ – aherlambang

+0

のタイプミスか分からない。実定数名はPDO :: FETCH_OBJです。とにかく、PDO :: FETCH_ASSOCも使えます – RiaD