2009-12-11 6 views
0

J'ai cette chaîne:PHP: Array Ségrégation

type=openBook&bookid=&guid=7AD92237-D3C7-CD3E-C052-019E1EBC16B8&authorid=&uclass=2&view= 

Je veux obtenir toutes les valeurs après le signe « = » donc pour le « type » je veux « OpenBook » et mettre cela en un tableau.

Note: même si elle est nulle, il doit être ajouté au tableau donc je ne vais pas perdre la piste ..

Alors, comment puis-je faire cela.

Merci beaucoup

Répondre

7

Je pense que vous voulez parse_str:

<?php 
$str = "first=value&arr[]=foo+bar&arr[]=baz"; 
parse_str($str); 
echo $first; // value 
echo $arr[0]; // foo bar 
echo $arr[1]; // baz 

parse_str($str, $output); 
echo $output['first']; // value 
echo $output['arr'][0]; // foo bar 
echo $output['arr'][1]; // baz 
?> 

Je ne sais pas ce que vous entendez par ce bit:

Note: même si elle est nulle, il faut être ajouté à la matrice afin que je ne lâche pas piste ..

Si parse_str ne fonctionne pas tout à fait comme vous voulez poster un commentaire et je vais essayer de vous aider.

+1

+1. Je pense qu'il voulait que 'type' soit inclus dans le tableau même s'il n'est pas défini (ou vide?) Dans la chaîne. – Franz

+0

ow désolé à ce sujet ce que je voulais dire était. si type = "" il doit également stocker une valeur nulle ou vide pour le tableau – Treby

+0

Merci Bro, je n'ai pas besoin d'un tableau car il est déjà dans une variable .. – Treby

-1
$first = split("&", "type=openBook&bookid=&guid=7AD92237-D3C7-CD3E-C052-019E1EBC16B8&authorid=&uclass=2&view="); 

foreach($first as $value) { 
    list($key, $val) = split("=", $value); 
    $arr[$key] = $val; 
} 

echo $arr['type']; // openBook 
+0

explode() serait mieux que split(). Premièrement, vous n'utilisez pas d'expression régulière, la seconde division est déconseillée depuis 5.3 – Vafliik

1

Vous pouvez jeter un oeil à explode();

<?php 

$foo = "type=openBook&bookid=&guid=7AD92237-D3C7-CD3E-C052-019E1EBC16B8&authorid=&uclass=2&view="; 

$chuncks = explode('&', $foo); 

$data = array(); 

foreach ($chuncks as $chunck) 
{ 
    $bar = explode('=', $chunck); 
    $data[$bar[0]] = $bar[1]; 

} 

var_dump($data);