Ответ 1
Все, что вам нужно, http_build_query:
$final = $url . "?" . http_build_query($subids);
Мне нужно взять массив, как у меня ниже:
$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, '', '&' );
?>
И вывести следующие строки:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&baz=boom&cow=milk&php=hypertext+processor
Вы можете прочитать из источника: http://www.php.net/manual/en/function.http-build-query.php
Кстати, если вы используете WordPress, вы можете использовать эту функцию: http://codex.wordpress.org/Function_Reference/add_query_arg
Получайте удовольствие.:)
просто используйте http_build_query: function. Он будет работать для вас