I\'m looking for a fast way to turn an associative array in to a string. Typical structure would be like a URL query string but with customizable separators so I can use \'<
function array_to_attributes ( $array_attributes )
{
$attributes_str = NULL;
foreach ( $array_attributes as $attribute => $value )
{
$attributes_str .= " $attribute=\"$value\" ";
}
return $attributes_str;
}
$attributes = array(
'data-href' => 'http://example.com',
'data-width' => '300',
'data-height' => '250',
'data-type' => 'cover',
);
echo array_to_attributes($attributes) ;
This is the most basic version I can think of:
public function implode_key($glue = "", $pieces = array())
{
$keys = array_keys($pieces);
return implode($glue, $keys);
}
If you're not concerned about the exact formatting however you do want something simple but without the line breaks of print_r
you can also use json_encode($value)
for a quick and simple formatted output. (note it works well on other data types too)
$str = json_encode($arr);
//output...
[{"id":"123","name":"Ice"},{"id":"234","name":"Cake"},{"id":"345","name":"Pie"}]
My solution:
$url_string = http_build_query($your_arr);
$res = urldecode($url_string);
You can use http_build_query() to do that.
Generates a URL-encoded query string from the associative (or indexed) array provided.