Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php$\u获取问题_Php_Arrays_Printing_Foreach_Get - Fatal编程技术网

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只有在有[]最后,否则它只会用最后指定的值覆盖重复键。