Подтвердить что ты не робот

Создать URL-адрес с параметрами из массива

Мне нужно взять массив, как у меня ниже:

$subids = Array
    (
        [s1] => one
        [s2] => two
        [s3] => three
        [s4] => four
        [s5] => five
        [s6] => six
    )

и создать URL-адрес, например http://example.com?s1=one&s2=two&s3=three=&s4=four&s5=five&s6=six

Все субиды не всегда определены, поэтому иногда s3 не может быть определен, поэтому его нельзя добавлять к URL-адресу. Кроме того, независимо от первого субада, он должен иметь? перед ним вместо амперсанда (&)

Итак, если массив справедлив:

$subids = Array
    (
        [s2] => two
        [s6] => six
    )

тогда URL-адрес должен быть http://example.com?s2=two&s6=six

У меня есть следующее:

$url = 'http://example.com'

    foreach ($subids AS $key => $value) {
        $result[$id]['url'] .= '&' . $key . '=' . $value;
    }

Однако, я не уверен, что лучший способ добавить это? в начале первой пары ключ/значение.

Я чувствую, что есть функция PHP, которая поможет в этом, но я не нахожу много. Я использую Codeigniter, если есть что-то, что я могу использовать, предоставляемый CI.

4b9b3361

Ответ 1

Все, что вам нужно, http_build_query:

$final = $url . "?" . http_build_query($subids);

Ответ 2

Вы можете использовать функцию http_build_query(). Пример из php.net:

<?php
$data = array(
    'foo' => 'bar',
    'baz' => 'boom',
    'cow' => 'milk',
    'php' => 'hypertext processor',
);

echo http_build_query( $data ) . "\n";
echo http_build_query( $data, '', '&amp;' );
?>

И вывести следующие строки:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Вы можете прочитать из источника: http://www.php.net/manual/en/function.http-build-query.php

Кстати, если вы используете WordPress, вы можете использовать эту функцию: http://codex.wordpress.org/Function_Reference/add_query_arg

Получайте удовольствие.:)

Ответ 3

просто используйте http_build_query: function. Он будет работать для вас