Php $ _GET Ausgabe
Frage
foreach ($_GET as $field => $label)
{
$datarray[]=$_GET[$field];
echo "$_GET[$field]";
echo "<br>";
}
print_r($datarray);
Dies ist die Ausgabe erhalte ich. Ich sehe die Daten gibt es in datarray aber wenn
Ich echo $_GET[$field]
ich nur bekommen "Array"
Aber print_r($datarray)
druckt alle Daten. Jede Idee, wie ich ziehe diese Werte?
OUTPUT
Array (
[0] => Array (
[0] => Grade1
[1] => ln
[2] => North America
[3] => yuiyyu
[4] => iuy
[5] => uiyui
[6] => yui
[7] => uiy
[8] => 0:0:5
)
)
Lösung
EDIT: Wenn ich Ihren Test abgeschlossen, hier war die letzte URL:
Dies ist wahrscheinlich eine ungültige URL. Wenn Sie doppelte Schlüssel in einer Abfrage übergeben, macht PHP sie ein Array. Die obige URL wahrscheinlich etwas sein sollte wie:
Diese individuelle Einträge für die meisten Felder erstellen, und $ _GET machen [ ‚Antwort‘] sein ein Array der vom Benutzer bereitgestellten Antworten.
Fazit:. Fixieren Sie Ihre Flash-Datei
Andere Tipps
Verwenden Sie var_export($_GET)
, um noch einfacher zu sehen, welche Art von Array Sie bekommen.
Vom Ausgang des Skriptes kann ich sehen, dass Sie mehrere verschachtelte Arrays haben. Es scheint, wie etwas zu sein:
$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))
so diese Variablen, um aus Sie brauchen etwas wie:
echo $_GET[0][0][0]; // => "Grade1"
auf einem Array Echo Aufruf wird immer ausgegeben "Array". print_r (aus dem PHP-Handbuch) druckt Menschen lesbare Informationen über eine Variable.
Mit <pre>
Tags vor print_r
, dann haben Sie einen Baum gedruckt (oder an der Quelle anschauen. Von diesem Punkt haben Sie ein klares Verständnis davon, wie Ihr Array ist und in der Lage, den Wert, den Sie wollen ziehen.
Ich schlage vor, das Lesen weiter $_GET
Variable und < a href = "http://www.php.net/types.array" rel = "nofollow noreferrer"> Arrays , für ein besseres Verständnis ihrer Werte
Versuchen Sie folgendes:
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);
Es ist Druck nur „Array“, weil, wenn Sie sagen,
echo "$_GET[$field]";
PHP kann nicht wissen, dass Sie $_GET
Element $field
meine, es sieht es wie Sie Variable $_GET
wollen drucken. So versucht sie, es zu drucken, und natürlich ist es ein Array, so dass das, was man bekommt. Im Allgemeinen, wenn Sie ein Array-Element Echo möchten, können Sie es wie folgt tun würde:
echo "The foo element of get is: {$_GET['foo']}";
Die geschweiften Klammern PHP sagen, dass das Ganze eine Variable, die interpretiert werden; sonst wird annehmen, dass es der Variablenname selbst ist $_GET
.
In Ihrem Fall wenn Sie nicht, dass brauchen, was Sie brauchen, ist:
foreach ($_GET as $field => $label)
{
$datarray[] = $label;
}
und wenn Sie es ausdrucken möchten, nur das tun,
echo $label; // or $_GET[$field], but that's kind of pointless.
Das Problem war nicht mit Ihrer Flash-Datei, ändern Sie es zurück, wie es war; Sie wissen, dass es richtig war, weil Ihr $ dataarray Variable alle Daten enthalten sind. Warum möchten Sie Daten aus $_GET
in ein anderes Array extrahieren haupt?
Vielleicht sind die GET-Variablen sind Arrays selbst? dh http://site.com?var[]=1&var[]=2
Es sieht aus wie Ihr GET Argument selbst ein Array ist. Es wäre hilfreich, um die Eingabe zu haben sowie die Ausgabe.