2013-07-30 4 views
1

J'ai été Google pendant des heures mais je ne peux pas faire des têtes ni des queues. J'ai un tableau associatif multidimensionnel comme celui-ci:Comment faire passer un tableau associatif multidimensionnel dans l'URL

$mArray = array(
    array("m" => "0"), 
    array("m" => "1"), 
    array("m" => "1") 
    ); 

Je voudrais créer le tableau avec requête GET PHP:

mywebsite.com/file.php?.......what do I put here?..... 

Répondre

3

Vous devez utiliser la notation d'accès au tableau comme celui-ci

mywebsite.com/file.php?item[0][m]=0&item[1][m]=1&item[2][m]=1 

Il serait simple d'utiliser des boucles imbriquées pour construire cette chaîne - ne pas oublier de coder les URL

$query_string = ''; 
foreach($mArray as $key => $array) { 
    foreach($array as $k => $v) { 
     $query_string .= 'item[' . urlencode($key) . '][' . urlencode($k) . ']=' . urlencode($v) . '&'; 
    } 
} 
$query_string = substr($query_string, 0, 1); // trim extra & 

Si vous deviez manipuler des tableaux de dimensions arbitraires, vous pourriez évidemment modifier cela en une fonction qui pourrait être appelée de manière récursive pour atteindre autant de niveaux que possible.

+0

Merci, je n'arrive pas à le faire fonctionner ... Ne devrait pas '$ mArray' être quelque part dans l'URL? – Youss

+1

@Youss Je viens de mettre 'item' comme nom de paramètre car vous n'avez pas spécifié le nom du paramètre que vous vouliez transmettre. Vous pouvez simplement remplacer 'item' pour le nom de paramètre que vous choisissez. –

+0

Je l'ai fait '$ mArray = $ _GET ['élément'];' Je ne comprends pas .. – Youss

Questions connexes