foreach ($_GET as $field => $label)
{
$datarray[]=$_GET[$field];
echo "$_GET[$field]";
echo "<br>";
}
print_r($datarray);
这是我得到的输出。我看到数据存在于数据阵列中但是什么时候
我echo $_GET[$field]
我只得到“数组”
但print_r($datarray)
打印所有数据。知道我如何提取这些价值观吗?
Array (
[0] => Array (
[0] => Grade1
[1] => ln
[2] => North America
[3] => yuiyyu
[4] => iuy
[5] => uiyui
[6] => yui
[7] => uiy
[8] => 0:0:5
)
)
答案 0 :(得分:1)
使用var_export($_GET)
可以更轻松地查看您获得的阵列类型。
从脚本的输出中我可以看到你有多个嵌套数组。它似乎是这样的:
$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))
所以为了得到这些变量你需要这样的东西:
echo $_GET[0][0][0]; // => "Grade1"
答案 1 :(得分:1)
编辑:当我完成测试时,这是最终的网址:
这可能是格式错误的网址。在查询中传递重复键时,PHP使它们成为一个数组。上面的URL应该类似于:
这将为大多数字段创建单独的条目,并使$ _GET ['answer']成为用户提供的答案数组。
底线:修复您的Flash文件。
答案 2 :(得分:0)
在<pre>
之前使用print_r
标签,然后您将打印一棵树(或者只看一下来源。从这一点上,您将清楚地了解您的阵列是如何并且将能够拉出你想要的价值。
答案 3 :(得分:0)
在数组上调用echo将始终输出“Array”。 print_r(来自PHP手册)打印有关变量的人类可读信息。
答案 4 :(得分:0)
试试这个:
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);
答案 5 :(得分:0)
只打印“数组”,因为当你说
时 echo "$_GET[$field]";
PHP无法知道您的意思是$_GET
元素$field
,它会将其视为您想要打印变量$_GET
。所以,它试图打印它,当然它是一个数组,这就是你得到的。通常,当您想要回显数组元素时,您可以这样做:
echo "The foo element of get is: {$_GET['foo']}";
大括号告诉PHP整个事情是一个需要解释的变量;否则它将假定变量名称本身为$_GET
。
在您的情况下,虽然您不需要,但您需要的是:
foreach ($_GET as $field => $label)
{
$datarray[] = $label;
}
如果你想打印它,只需做
echo $label; // or $_GET[$field], but that's kind of pointless.
问题不在于您的Flash文件,请将其更改回原来的状态;你知道它是正确的,因为你的$ dataarray变量包含所有数据。为什么要将数据从$_GET
提取到另一个数组?
答案 6 :(得分:-1)
也许GET变量本身就是数组?即http://site.com?var[]=1&var[]=2
答案 7 :(得分:-1)
看起来你的GET参数本身就是一个数组。输入和输出都会很有帮助。