Я ищу имя функции PHP для построения строки запроса из массива пар значений ключа. Обратите внимание, что я ищу встроенную функцию PHP для этого, а не для доморощенного (кажется, что все поиски google возвращаются). Есть один, я просто не могу запомнить его имя или найти его на php.net. Название IIRC не является интуитивным.
PHP-функция для построения строки запроса из массива
Ответ 1
Вы ищете http_build_query().
Ответ 2
Здесь простая реализация, совместимая с 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 );
}
Ответ 3
Как дополнение к ответу @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);
    }
}
Ответ 4
Я не знаю встроенной функции, но есть класс PECL http://uk.php.net/manual/en/class.httpquerystring.php
Ответ 5
Implode объединит массив в строку для вас, но для того, чтобы сделать запрос SQL из пары kay/value, Вам придется написать свою собственную функцию.
Ответ 6
но для инверсной этой работы вы можете использовать:
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
Удачи.
