Php$\u获取问题
在Php$\u获取问题,php,arrays,printing,foreach,get,Php,Arrays,Printing,Foreach,Get,在打印之前使用标记,然后您将打印一棵树(或者只查看源代码)。从这一点上,您将清楚地了解数组的结构,并能够提取所需的值 我建议进一步阅读变量,为了更好地理解它的值,GET变量可能是数组本身,也就是说,在数组上调用echo将始终输出“array”。 print\u r(来自PHP手册)打印有关变量的可读信息。看起来GET参数本身就是一个数组。输入和输出都有帮助。使用var\u export($\u GET)可以更容易地查看您得到的数组类型 从脚本的输出中,我可以看到您有多个嵌套数组。它似乎类似于:
打印之前使用
标记,然后您将打印一棵树(或者只查看源代码)。从这一点上,您将清楚地了解数组的结构,并能够提取所需的值
我建议进一步阅读变量,为了更好地理解它的值,GET变量可能是数组本身,也就是说,在数组上调用echo将始终输出“array”。
print\u r(来自PHP手册)打印有关变量的可读信息。看起来GET参数本身就是一个数组。输入和输出都有帮助。使用var\u export($\u GET)
可以更容易地查看您得到的数组类型
从脚本的输出中,我可以看到您有多个嵌套数组。它似乎类似于:
$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))
echo $_GET[0][0][0]; // => "Grade1"
因此,要获得这些变量,您需要以下内容:
$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))
echo $_GET[0][0][0]; // => "Grade1"
编辑:当我完成您的测试时,这里是最终的URL:
这可能是一个格式错误的URL。当您在查询中传递重复的键时,PHP会将它们设置为一个数组。上述URL可能类似于:
$_GET = array( array( array("Grade1", "ln", "North America", "yuiyyu", "iuy", "uiyui", "yui","uiy","0:0:5")))
echo $_GET[0][0][0]; // => "Grade1"
这将为大多数字段创建单个条目,并使$_GET['answer']成为用户提供的答案数组
底线:修复您的闪存文件。尝试以下操作:
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);
foreach($\u获取为$field=>$label)
{
$datarray[]=$\u GET[$field];
echo$_GET[$field];//您实际上不需要引号
echo“带引号:{$\u GET[$field]}”;//但是如果您想使用它们
echo$field;//这实际上与echo$\u GET[$field]相同,所以
如果($label=$\u GET[$field]){
echo“应始终为真
”;
}
回声“
”;
}
打印(数据阵列);
它只打印“数组”,因为当你说
echo "$_GET[$field]";
PHP不知道您的意思是$\u GET
元素$字段
,它认为您想要打印变量$\u GET
。因此,它尝试打印它,当然它是一个数组,所以这就是您得到的。通常,当您想要回显数组元素时,您会这样做:
echo "The foo element of get is: {$_GET['foo']}";
花括号告诉PHP整个事情都是一个需要解释的变量;否则它将假定变量名为$\u GET
在您的情况下,虽然您不需要,但您需要的是:
foreach ($_GET as $field => $label)
{
$datarray[] = $label;
}
如果你想把它打印出来,就这么做吧
echo $label; // or $_GET[$field], but that's kind of pointless.
问题不在闪存文件上,请将其更改回原来的状态;您知道它是正确的,因为$dataarray变量包含所有数据。您为什么要将数据从$\u GET
提取到另一个数组中?请编辑此问题的标题,使其更具描述性。您的问题的格式更好,以便人们理解更好地理解它,并提供更快的答案。使用降价,甚至编辑字段上的按钮。我认为如果您向我们展示提供如此奇怪的$GET的链接,我们可以了解更多。将您试图通过$GET读取的实际URL查询包括在内也会很有帮助。这是一个链接,让我知道这是否有帮助。这是我得到的警告:Inval第27行/home/public_html/process.php中为foreach()提供的id参数他没有嵌套数组;第一个数组是echo“$\u GET[$field]”的输出,第二个是print\r($datarray)的输出;php只有在有[]最后,否则它只会用最后指定的值覆盖重复键。