Question

foreach ($_GET as $field => $label)
{
   $datarray[]=$_GET[$field];
   echo "$_GET[$field]";
   echo "<br>";
}
print_r($datarray);

Ceci est la sortie que je reçois. Je vois les données sont là dans datarray mais quand Je echo $_GET[$field]

Je ne reçois que & "Tableau &";

Mais print_r($datarray) imprime toutes les données. Une idée de comment je tire ces valeurs?

SORTIE

Array ( 
        [0] => Array ( 
                 [0] => Grade1 
                 [1] => ln 
                 [2] => North America 
                 [3] => yuiyyu 
                 [4] => iuy 
                 [5] => uiyui 
                 [6] => yui 
                 [7] => uiy 
                 [8] => 0:0:5 
                 ) 
)
Était-ce utile?

La solution

EDIT: Lorsque j'ai terminé votre test, voici l'URL finale:

http://hofstrateach.org/Roberto/process.php ? keys = Grade1 & amp; keys = Nathan & amp; keys = North% 20America & amp; keys = 5 & amp; keys = 3 & amp; keys = no & ; keys = foo & amp; keys = blat & amp; keys = 0% 3A0% 3A24

Ceci est probablement une URL mal formée. Lorsque vous transmettez des clés en double dans une requête, PHP en fait un tableau. L'URL ci-dessus devrait probablement être quelque chose comme:

http: / /hofstrateach.org/Roberto/process.php?grade=Grade1 & de l'école = Nathan & de la région = Nord% 20Amérique & de la réponse [] = 5 & de la réponse [] = 3 & Réponse [] = non & Réponse [] = foo & Réponse [] = blat & Durée = 0% 3A0% 3A24

Ceci créera des entrées individuelles pour la plupart des champs et fera de $ _GET ['answer'] un tableau des réponses fournies par l'utilisateur.

Ligne de fond: corrigez votre fichier Flash.

Autres conseils

Utilisez var_export($_GET) pour voir plus facilement quel type de tableau vous obtenez.

D'après le résultat de votre script, vous pouvez voir que vous avez plusieurs tableaux imbriqués. Cela semble être quelque chose comme:

$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))

donc pour obtenir ces variables vous avez besoin de quelque chose comme:

echo $_GET[0][0][0]; // => "Grade1"

appeler echo sur un tableau générera toujours & "Tableau &". print_r (du manuel PHP) affiche des informations lisibles par l'homme sur une variable.

Utilisez <pre> balises avant print_r, vous aurez alors une arborescence imprimée (ou regardez simplement la source. À partir de là, vous aurez une idée claire de la façon dont votre tableau est et sera en mesure d'extraire la valeur tu veux.

Je suggère des lectures supplémentaires sur la $_GET . et tableaux , pour mieux comprendre ses valeurs

Essayez ceci:

foreach ($_GET as $field => $label)
{
    $datarray[]=$_GET[$field];

    echo $_GET[$field]; // you don't really need quotes

    echo "With quotes: {$_GET[$field]}"; // but if you want to use them

    echo $field; // this is really the same thing as echo $_GET[$field], so

    if($label == $_GET[$field]) {
         echo "Should always be true<br>";
    }
    echo "<br>";
}
print_r($datarray);

Il imprime juste & "; Tableau &"; parce que quand vous dites

 echo "$_GET[$field]";

PHP ne peut pas savoir que vous voulez dire $_GET élément $field, il le voit comme si vous vouliez imprimer la variable <=>. Donc, il essaie de l’imprimer, et bien sûr c’est un tableau, alors c’est ce que vous obtenez. Généralement, quand vous voulez faire écho à un élément de tableau, vous le feriez comme ceci:

echo "The foo element of get is: {$_GET['foo']}";

Les accolades indiquent à PHP que le tout est une variable qui doit être interprétée. sinon, le nom de variable est <=> par lui-même.

Dans votre cas, même si vous n'en avez pas besoin, il vous faut:

foreach ($_GET as $field => $label)
{
    $datarray[] = $label;
}

et si vous voulez l'imprimer, faites simplement

echo $label; // or $_GET[$field], but that's kind of pointless.

Le problème ne venait pas de votre fichier flash, modifiez-le à nouveau. vous savez que c'était correct car votre variable $ dataarray contenait toutes les données. Pourquoi voulez-vous quand même extraire des données de <=> dans un autre tableau?

Peut-être que les variables GET sont des tableaux eux-mêmes? c.-à-d. http://site.com?var [] = 1 amp; var [] = 2

Il semble que votre argument GET soit lui-même un tableau. Il serait utile d’avoir l’entrée et la sortie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top