2017-05-06 60 views
1

我在PHP以下web服務如何從JSON輸出取出數組索引

<?php  
if(isset($_GET['user'])) 
    $idActeur = ($_GET['user']); 
$pdo = PdoGsb::getPdoGsb(); 
$tabVisites = $pdo->getLesVisites($idActeur); 
echo json_encode(array('visite'=>$tabVisites));  
?> 

此web服務返回此格式

[{"id":"5","0":"5","dateVisite":"2015-12-31","1":"2015-12-31","estVisiteProgramme":"1","2":"1","heureArriveeCabinet":"23h58","3":"23h58","heureDebutEntretien":"23h59","4":"23h59","heureDepartCabinet":"23h59","5":"23h59","idMedecin":"3","6":"3","idActeur":"a17","7":"a17"}, 

的JSON當這樣做是可變的的var_dump在json中輸出我得到這個

array (size=6) 
    0 => 
    array (size=16) 
     'id' => string '5' (length=1) 
     0 => string '5' (length=1) 
     'dateVisite' => string '2015-12-31' (length=10) 
     1 => string '2015-12-31' (length=10) 
     'estVisiteProgramme' => string '1' (length=1) 
     2 => string '1' (length=1) 
     'heureArriveeCabinet' => string '23h58' (length=5) 
     3 => string '23h58' (length=5) 
     'heureDebutEntretien' => string '23h59' (length=5) 
     4 => string '23h59' (length=5) 
     'heureDepartCabinet' => string '23h59' (length=5) 
     5 => string '23h59' (length=5) 
     'idMedecin' => string '3' (length=1) 
     6 => string '3' (length=1) 
     'idActeur' => string 'a17' (length=3) 
     7 => string 'a17' (length=3) 

我應該如何返工我的web服務,以便輸出的json不包括數組索引?

的目標是擁有一個json,看起來像這樣:

[{"id":"5", 
"dateVisite":"2015-12-31", 
"estVisiteProgramme":"1 }] 

下面是從數據庫中獲取結果的方法:

public function getLesVisites($idActeur) 
    { 
     // Création requête 
     $req = "SELECT * FROM visite WHERE visite.idActeur = '$idActeur'"; 
     // Exécution de la requête 
     $res = PdoGsb::$monPdo->query($req); 
     // Stockage de la requête dans la variable $lesVisites 
     $lesVisites = $res->fetchAll(); 
     // Retourne les visites 
     return $lesVisites; 
    } 
+4

將'PDO :: FETCH_MODE'設置爲'PDO :: FETCH_ASSOC'。默認值是'PDO :: FETCH_BOTH',這就是你所得到的。 – rickdenhaan

+0

我應該怎麼做? –

+0

您可以調用'$ pdo-> setAttrValue()'在數據庫連接後立即更改獲取模式(我假設在您的'PdoGsb'類中),或者在您調用'fetch時提供一個獲取模式作爲參數()'或'fetchAll()'的PDO結果。 – rickdenhaan

回答

2

設置PDO::FETCH_MODEPDO::FETCH_ASSOC。默認值是PDO::FETCH_BOTH,這就是你所得到的。您可以撥打$pdo->setAttrValue()以在進行數據庫連接後立即更改提取模式(我在您的PdoGsb課程中假設),或者您可以在PDO結果(例如,PDO結果)上調用fetch()fetchAll()時提供提取模式作爲參數。 $result->fetchAll(PDO::FETCH_ASSOC)