web-dev-qa-db-ja.com

クエリ文字列を配列に解析します

下のstringarrayに変換するにはどうすればよいですか?

pg_id=2&parent_id=2&document&video 

これは私が探している配列です、

array(
    'pg_id' => 2,
    'parent_id' => 2,
    'document' => ,
    'video' =>
)
168
laukok

parse_str 関数が必要であり、2番目のパラメーターを設定して、データを個々の変数ではなく配列に入れる必要があります。

$get_string = "pg_id=2&parent_id=2&document&video";

parse_str($get_string, $get_array);

print_r($get_array);
290
Anthony

時にはparse_str()のみが正確なメモであり、たとえば次のように表示されます。

$url = "somepage?id=123&lang=gr&size=300";

parse_str()は以下を返します:

Array ( 
    [somepage?id] => 123 
    [lang] => gr 
    [size] => 300 
)

parse_str()parse_url()を次のように組み合わせた方が良いでしょう:

$url = "somepage?id=123&lang=gr&size=300";
parse_str( parse_url( $url, PHP_URL_QUERY), $array );
print_r( $array );
53
yassine2020

parse_str() を使用します。

$str = 'pg_id=2&parent_id=2&document&video';
parse_str($str, $arr);
print_r($arr);
30
Rocket Hazmat

http://us1.php.net/parse_str を使用します

注意、その使用法は次のとおりです。

parse_str($str, &$array);

じゃない

$array = parse_str($str);
18
Ionut Bajescu

アンパサンドがエンコードされているためにクエリ文字列を配列に変換する際に問題がある場合

&

その後、必ずhtml_entity_decodeを使用してください

例:

// Input string //
$input = 'pg_id=2&parent_id=2&document&video';

// Parse //
parse_str(html_entity_decode($input), $out);

// Output of $out //
array(
  'pg_id' => 2,
  'parent_id' => 2,
  'document' => ,
  'video' =>
)
15
Casper Wilkes

いくつかの可能なメソッドがありますが、あなたには既に組み込みの parse_str function があります

$array = array();
parse_str($string, $array);
var_dump($array);
13
KingCrunch

これは、クエリを現在のURLから配列に解析するための1行です。

parse_str($_SERVER['QUERY_STRING'], $query);
3
hovado

PHP文字列関数parse_str()の後にforeachループを使用できます。

$str="pg_id=2&parent_id=2&document&video";
parse_str($str,$my_arr);
foreach($my_arr as $key=>$value){
  echo "$key => $value<br>";
}
print_r($my_arr);
1
user8241064