I find this useful, but the name is a bit confusing because the function works differently than a combo of urlencode() / rawurlencode() and array_map(). One of my picks is build_query_string() (this doesn't conform to the naming convention though.)
Moriyoshi "Sara Golemon" <[EMAIL PROTECTED]> wrote: > proto urlencode_array(array formdata [, string numeric_prefix]) > > Purpose: Generate a form encoded query string from an associative (or > indexed) array. > > Example: > > $formdata = array('page'=>'home', > > 'users'=>array('bob'=>array('fname'=>'Bob','lname'=>'Smith'), > > 'jdoe'=>array('fname'=>'Jane','lname'=>'Doe')), > 'errors'=>array('missing date','missing > time','sums not =='), > 'other data'); > > echo urlencode_array($formdata); > /* outputs the following > > page=home&users[bob][fname]=Bob&users[bob][lname]=Smith&users[jdoe][fname]=J > ane&users[jdoe][lname]=Doe&errors[0]=missing+date&errors[1]=missing+time&err > ors[2]=sums+not+%3D%3D&0=other+data > */ > > Example 2: > > Same array as above but encoded using a prefix for numeric values: > > echo urlencode_array($formdata, 'misc_'); > > page=home&users[bob][fname]=Bob&users[bob][lname]=Smith&users[jdoe][fname]=J > ane&users[jdoe][lname]=Doe&errors[0]=missing+date&errors[1]=missing+time&err > ors[2]=sums+not+%3D%3D&misc_0=other+data > > > Note Example 2 allows numerically indexed arrays to generate query strings > which will yield legal variable names, but doesn't enforce such behavior. > Also, the numeric_prefix only applies to the root array's indexes since > subsequence arrays may be indexed without compromise. > > The patch is available at: > http://frankenbox.alphaweb.net/test/urlencode_array.diff.txt > > The underlying function php_url_encode_hash() is meant for later use in > http_request() and for handling a context option in the http:// wrapper, but > it seems as though there's no harm exporting it to userland. (Hence the > addition of urlencode_array() -- I'm flexible on the name, array_urlencode() > has been suggested as well) > > I'm looking for a couple +1s before I actually commit this though. > > -Sara > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php