Le résultat de ce code: est: p> pouvez-vous remarquer comment il saute le premier numéro, qui est zéro ? La question est la suivante: pourquoi? P> p>
3 Réponses :
Vous n'avez pas indexé votre tableau ** Modifier: ** sur mon ordinateur portable si je fais un print_r ($ a); Je reçois ce tableau: qui définit zéro p>
Techniquement ne devrait pas être nécessaire. La syntaxe [] est censée incrémenter automatiquement l'index (à partir de 0, évidemment). Le vôtre ne fonctionnerait pas comme vous le souhaitez si $ A a déjà des objets et que sa boucle ne leur ajoute simplement.
Vous voulez JSON_ENCODE ($ A, JSON_FORCE_OBJECT). Malheureusement, il est ajouté seulement en 5.3. P>
En outre, voici un cas de test plus simple: php -r 'var_dump (json_encode (tableau (tableau (0 => 0), matrice (1 => 1))); chaîne (13) "[[0], {" 1 ": 1}]"
Je ne peux même pas le tester car Rackspace Cloud Sites est bloqué @ 5.2.6. Je vais essayer de travailler autour de cette question JSON_ENCODE.
Bon, j'ai réussi à utiliser json_encode correctement à partir d'un objet au lieu d'un tableau. Le problème est qu'il délivre des chaînes partout et non des entiers comme si j'aurais besoin dans certains cas, mais je vais m'occuper de cela plus tard. Merci!
C'est un hack mais vous pouvez préparer un élément factice.
$a = array('dummy'=>1);
for($i = 0; $i <= 7; $i++) {
...
Quelle version de php utilisez-vous?
Je suis capable de reproduire ceci sur 5.3.0. Le problème réside avec json_encode - print_r'ing the $ a une matrice de $ une matrice indique qu'il est indexé correctement.
Hmmm. Je peux reproduire cela, sur PHP 5.1.6. Googling semble ne rien produire, cela dit qu'il n'y a pas de terme de recherche simple. +1.
Vous êtes sur PHP 5.1.6! ??! Sainte Crap Mettez à jour votre serveur!