Bonjour,
J'étais en train de réviser quelques scripts php (appelés via AJAX) et je me trouve confronté à un petit soucis ^^ Json_encode() fait un traitement différent selon que les clés du tableau commencent à 0 ou à 15. Lorsque les clés commencent à 0, la fonction vire la clé dans la chaine de sortie et me propose un tableau. Logique en somme, ça permet de gagner encore quelques octets si les clés numériques se suivent. Sauf que... si mes clés commencent à 8 disons, il me sort un objet.
Exemple :
Du coup, ça me cause un p'tit soucis niveau traitement javascript. Sauf si je me trompe et qu'il y a moyen de parcourir les deux de la même manière (j'ai essayé de chercher de la bonne doc sur Google et autres, mais c'est pas simple).
Je sais qu'en PHP 5.3 y a moyen de forcer l'encodage pour qu'il sorte de l'objet dans les deux cas (si j'ai bien compris la doc), mais mon serveur ne tourne pas encore sous cette version-là.
Merci pour votre aide,
Holy
Edit : Je vais essayer de passer sous PHP 5.3 histoire de voir ce que ça donne.
J'étais en train de réviser quelques scripts php (appelés via AJAX) et je me trouve confronté à un petit soucis ^^ Json_encode() fait un traitement différent selon que les clés du tableau commencent à 0 ou à 15. Lorsque les clés commencent à 0, la fonction vire la clé dans la chaine de sortie et me propose un tableau. Logique en somme, ça permet de gagner encore quelques octets si les clés numériques se suivent. Sauf que... si mes clés commencent à 8 disons, il me sort un objet.
Exemple :
Code :
$a = array(
0 => array(
'message' => 'Bonjour'
),
array(
'message' => 'Salut!'
)
);
$b = array(
8 => array(
'message' => 'Bonjour'
),
array(
'message' => 'Salut!'
)
);
echo json_encode($a);
// Donne [{"message":"Bonjour"},{"message":"Salut!"}]
echo json_encode($b);
// Donne {"8":{"message":"Bonjour"},"9":{"message":"Salut!"}}
Je sais qu'en PHP 5.3 y a moyen de forcer l'encodage pour qu'il sorte de l'objet dans les deux cas (si j'ai bien compris la doc), mais mon serveur ne tourne pas encore sous cette version-là.
Merci pour votre aide,
Holy
Edit : Je vais essayer de passer sous PHP 5.3 histoire de voir ce que ça donne.