2017-05-06 62 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)