PHP-функция для построения строки запроса из массива

Я ищу имя функции PHP для построения строки запроса из массива пар значений ключа. Обратите внимание, что я ищу встроенную функцию PHP для этого, а не для доморощенного (все это похоже на поиск google). Есть один, я просто не могу запомнить его имя или найти его на php.net. Название IIRC не является интуитивным.

Вы ищете http_build_query() .

Вот простая версия, совместимая с php4:

 /** * Builds an http query string. * @param array $query // of key value pairs to be used in the query * @return string // http query string. **/ function build_http_query( $query ){ $query_array = array(); foreach( $query as $key => $key_value ){ $query_array[] = urlencode( $key ) . '=' . urlencode( $key_value ); } return implode( '&', $query_array ); } 

Как дополнение к @thatjuan .
Более совместимая версия PHP4:

 if (!function_exists('http_build_query')) { if (!defined('PHP_QUERY_RFC1738')) { define('PHP_QUERY_RFC1738', 1); } if (!defined('PHP_QUERY_RFC3986')) { define('PHP_QUERY_RFC3986', 2); } function http_build_query($query_data, $numeric_prefix = '', $arg_separator = '&', $enc_type = PHP_QUERY_RFC1738) { $data = array(); foreach ($query_data as $key => $value) { if (is_numeric($key)) { $key = $numeric_prefix . $key; } if (is_scalar($value)) { $k = $enc_type == PHP_QUERY_RFC3986 ? urlencode($key) : rawurlencode($key); $v = $enc_type == PHP_QUERY_RFC3986 ? urlencode($value) : rawurlencode($value); $data[] = "$k=$v"; } else { foreach ($value as $sub_k => $val) { $k = "$key[$sub_k]"; $k = $enc_type == PHP_QUERY_RFC3986 ? urlencode($k) : rawurlencode($k); $v = $enc_type == PHP_QUERY_RFC3986 ? urlencode($val) : rawurlencode($val); $data[] = "$k=$v"; } } } return implode($arg_separator, $data); } } 

Я не знаю встроенной функции, но есть класс PECL http://uk.php.net/manual/en/class.httpquerystring.php

Implode объединит массив в строку для вас, но для того, чтобы сделать запрос SQL из пары kay / value, вам придется написать свою собственную функцию.

но для обратной работы, вы можете использовать:

 void parse_str(str $input, array $output); //for example: $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 

Удачи.