query_to_array ( $qs )

Convert a query string into an associative array. Multiple, identical keys will become an indexed array.

Access

public

Parameters

Parameter

Type

Required

Description

$qs

string

Required

Query string to convert.

Returns

Type

Description

array

Associative array of keys and values.

Examples

Decodes a query string into an associative array.

// Instantiate
$s3 = new AmazonS3();

// Test data
$qs = $s3->util->to_query_string(array(
	'a' => 1,
	'b' => 2,
	'c' => 3,
));

// Success?
var_dump($qs);
var_dump($util->query_to_array($qs));
Result:
string(11) "a=1&b=2&c=3"
array(3) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  string(1) "2"
  ["c"]=>
  string(1) "3"
}

Decodes a query string into an associative array. Supports the same key more than once.

// Instantiate
$s3 = new AmazonS3();

// Test data
var_dump($s3->util->query_to_array('a=1&a=2&a=3&b=2&c=3'));
Result:
array(3) {
  ["a"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["b"]=>
  string(1) "2"
  ["c"]=>
  string(1) "3"
}

Source

Method defined in utilities/utilities.class.php | Toggle source view (25 lines) | View on GitHub

public function query_to_array($qs)
{
    $query = explode('&', $qs);
    $data = array();

    foreach ($query as $q)
    {
        $q = explode('=', $q);

        if (isset($data[$q[0]]) && is_array($data[$q[0]]))
        {
            $data[$q[0]][] = urldecode($q[1]);
        }
        else if (isset($data[$q[0]]) && !is_array($data[$q[0]]))
        {
            $data[$q[0]] = array($data[$q[0]]);
            $data[$q[0]][] = urldecode($q[1]);
        }
        else
        {
            $data[urldecode($q[0])] = urldecode($q[1]);
        }
    }
    return $data;
}

Copyright © 2010–2013 Amazon Web Services, LLC


Feedback