Создать 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.

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

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

Вы можете использовать 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

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

Повеселись. 🙂

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