Pergunta

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

Esta é a saída que estou recebendo. Eu vejo os dados estão lá em datarray mas quando I echo $_GET[$field]

Eu só obter "matriz"

mas imprime print_r($datarray) todos os dados. Alguma idéia de como eu puxar esses valores?

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 
                 ) 
)
Foi útil?

Solução

EDIT: Quando eu terminei o teste, aqui foi o URL final:

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

Esta é provavelmente uma URL mal formada. Quando você passar chaves duplicadas em uma consulta, PHP torna um array. O URL acima, provavelmente, deve ser algo como:

http://hofstrateach.org/Roberto/process.php?grade=Grade1&schoolname=Nathan®ion=North%20America&answer [] = 5 & resposta [] = 3 & resposta [] não & answer = [] = foo & resposta [] = blat & time = 0% 3A0% 3A24

Isto irá criar entradas individuais para a maioria dos campos, e fazer $ _GET [ 'resposta'] ser uma matriz de respostas fornecidas pelo usuário.

A linha inferior:. Corrigir seu arquivo Flash

Outras dicas

Use var_export($_GET) para mais facilmente ver que tipo de matriz que você está recebendo.

Desde a saída do seu script eu posso ver que você tem várias matrizes aninhadas. Parece ser algo como:

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

de modo a obter essas variáveis ??para fora você precisa de algo como:

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

chamando echo em uma matriz será sempre de saída "matriz". print_r (do manual do PHP) imprime informações legível sobre uma variável.

marcas Use <pre> antes print_r, então você vai ter uma árvore impressa (ou apenas olhar para a fonte. A partir deste ponto, você terá uma compreensão clara de como sua matriz é e será capaz de puxar o valor que deseja.

Eu sugiro ler mais sobre $_GET variável e < a href = "http://www.php.net/types.array" rel = "nofollow noreferrer"> matrizes , para uma melhor compreensão dos seus valores

Tente isto:

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);

É a impressão apenas "matriz" porque quando você diz

 echo "$_GET[$field]";

PHP não pode saber que você quer dizer elemento $_GET $field, vê-lo como você querer imprimir $_GET variável. Então, ele tenta imprimi-lo, e é claro que é um Array, então é isso que você recebe. Geralmente, quando você quer ecoar um elemento de matriz, você faria assim:

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

As chaves dizer PHP que a coisa toda é uma variável que precisa ser interpretada; caso contrário ele irá assumir o nome da variável é $_GET por si só.

No seu caso, porém, você não precisa disso, o que você precisa é:

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

e se você quiser imprimi-lo, basta fazer

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

O problema não era com o seu arquivo flash, mudá-lo de volta para como era; você sabia que era correto porque seu $ dataArray variável continha todos os dados. Por que você quer para extrair dados de $_GET em outro array de qualquer maneira?

Talvez as variáveis ??GET são próprias matrizes? ou seja http://site.com?var[]=1&var[]=2

Parece que o seu argumento GET é em si um array. Seria útil ter a entrada, bem como a saída.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top