使用数组中的参数生成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中。 另外,无论第一个subid是什么,它必须有? 在它之前而不是&符号(&)

所以如果数组只是:

 $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函数来帮助,但我没有find太多。 我使用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

顺便说一句,如果你使用WordPress,你可以这个function: http : //codex.wordpress.org/Function_Reference/add_query_arg

玩的开心。 🙂

只需使用http_build_query:函数。 它会为你工作