Need help converting a query string to an array

I need an urgent help in converting the following query string

status=SUCCESS&key=9bfad767-abb7-4147-b407-5cec175daa9e&invoice=2712&customer_account=&transaction_id=&fee=&total=70.0&test=true&reference=&process_code=¤cy=&exchange_rate=&reference_number=&message=

Array
(
[status] => SUCCESS
[key] => 9bfad767-abb7-4147-b407-5cec175daa9e
[invoice] => 2712
[customer_account] =>
[transaction_id] =>
[fee] =>
[total] => 70.0
[test] => true
[reference] =>
[process_code] =>
[currency] =>
[exchange_rate] =>
[reference_number] =>
[message] =>
)

Anybody?

$string = "status=SUCCESS&key=9bfad767-abb7-4147-b407-5cec175daa9e&invoice=2712&customer_account=&transaction_id=&fee=&total=70.0&test=true&reference=&process_code=¤cy=&exchange_rate=&reference_number=&message=";
$qstring = explode("&",$string);
$querystring = array();
foreach($qstring as $pair):
    $parts = explode("=",$pair);
    $querystring[$parts[0]] = $parts[1];
endforeach;    

echo "<pre>";
print_r($qstring); 
print_r($querystring); 
echo "</pre>";

Result

Array
(
    [status] => SUCCESS
    [key] => 9bfad767-abb7-4147-b407-5cec175daa9e
    [invoice] => 2712
    [customer_account] => 
    [transaction_id] => 
    [fee] => 
    [total] => 70.0
    [test] => true
    [reference] => 
    [process_code] => ¤cy
    [exchange_rate] => 
    [reference_number] => 
    [message] => 
)

Not to detract from Drummin’s solution, but PHP actually has a function for this: parse_str

$string = "status=SUCCESS&key=9bfad767-abb7-4147-b407-5cec175daa9e&invoice=2712&customer_account=&transaction_id=&fee=&total=70.0&test=true&reference=&process_code=¤cy=&exchange_rate=&reference_number=&message=";

parse_str($string, $params);
// $params is now an array of the query string parameters
2 Likes

$_GET[] is already an array of those entries.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.