Bonjour à tous.
Je poste un petit message au cas ou quelqu'un ai besoin de cette fonction un jour.
Vous avez une URL du type : param1=2549&appname=appName1&appname=appName2&appname=appName3&appname=appName4&appname=appName5&apptype=thetype&idsess=1231324567980147dzeze55sd4&action=myaction
La petite méthode qui va bien
public static function getMultipleParameters()
{
$query = $_SERVER'QUERY_STRING'];
$vars = array();
$second = array();
foreach (explode('&', $query) as $pair) {
list($key, $value) = explode('=', $pair);
if('' == trim($value)){
continue;
}
if (array_key_exists($key, $vars)) {
if (!array_key_exists($key, $second))
$second$key]] .= $vars$key];
$second$key]] = $value;
} else {
$vars$key] = urldecode($value);
}
}
return array_merge($vars, $second);
}
Ce qui donne
array (
'param1' => '2549',
'appname' =>
array (
0 => 'appName1',
1 => 'appName2',
2 => 'appName3',
3 => 'appName4',
4 => 'appName5',
),
'apptype' => 'thetype',
'idsess' => '1231324567980147dzeze55sd4',
'action' => 'myaction',
);
Je ne trouvais pas de réponse satisfaisante sur Internet et j'avais besoin que si un paramètre étais seul, il ne soit pas dans un array de array.
En espérant que cela aide.
J'ai vitte regarder ton poste et à mon avis, tu peux tester la taille de ton tableau à chaque "itération" de la boucle ou alors à la fin parcourir tes tabs et mettre de l'ordre dedans.
Ce que j'aurai fais:
if (array_key_exists($key, $vars)) {
if (!array_key_exists($key, $second))
$second$key]] .= $vars$key];
if(count($vars$key]) > 1) $second$key]] = $value; // Je pense que cette conditione st suffisante ...
} else {
$vars$key] = urldecode($value);
}
J'espère que ca peut t'aider.