下のstringをarrayに変換するにはどうすればよいですか?
pg_id=2&parent_id=2&document&video
これは私が探している配列です、
array(
'pg_id' => 2,
'parent_id' => 2,
'document' => ,
'video' =>
)
parse_str
関数が必要であり、2番目のパラメーターを設定して、データを個々の変数ではなく配列に入れる必要があります。
$get_string = "pg_id=2&parent_id=2&document&video";
parse_str($get_string, $get_array);
print_r($get_array);
時には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 );
parse_str()
を使用します。
$str = 'pg_id=2&parent_id=2&document&video';
parse_str($str, $arr);
print_r($arr);
http://us1.php.net/parse_str を使用します
注意、その使用法は次のとおりです。
parse_str($str, &$array);
じゃない
$array = parse_str($str);
アンパサンドがエンコードされているためにクエリ文字列を配列に変換する際に問題がある場合
&
その後、必ず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' =>
)
いくつかの可能なメソッドがありますが、あなたには既に組み込みの parse_str
function があります
$array = array();
parse_str($string, $array);
var_dump($array);
これは、クエリを現在のURLから配列に解析するための1行です。
parse_str($_SERVER['QUERY_STRING'], $query);
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);