View Single Post

  #2 (permalink)  
Old 05-23-2006
David Haynes
 
Posts: n/a
Default Re: How to convert array to string, and vice versa

Tim Streater wrote:
> I have some items, numbered from 0 upwards. Some of them may have a
> string attached. All these items need to be represented in a single
> already existing database record. So, I thought of taking an array, as
> it might be looking thus (the values are all strings):
>
> Key Value
> --- -----
> 0 firstone
> 2 somestring
> 5 anotherstr
>
>
> and so on, and converting it to a single string:
>
> "'0', 'firstone', '2', 'somestring', '5', 'anotherstr'"
>
> then I have a string I can write to the database record.
>
> So I want to go from:
>
> $myarr = array (0 => 'firstone', 2 => 'somestring', 5 => 'anotherstr');
>
> to:
>
> $mystring = "'0', 'firstone', '2', 'somestring', '5', 'anotherstr'";
>
> Is there a quick way to do this mapping in both directions? (I don't
> mind if the string read/written to the database is not as above, as it
> won't be used for any other purpose).
>
> I can't see any array or string function that looks designed for this or
> a similar purpose.
>
> Thanks for any pointers.
>
> -- tim


Something like this could be used to pack the string:

$foreach( $myarr as $key => $value ) {
$tmp[] = "'$key'";
$tmp[] = "'$value'";
}
$mystring = '"'.implode(', ', $tmp).'"';

Unpacking would be something like:
$tmp = substr($mystring, 1, strlen($mystring)-1);
$myarr = explode(', ', $tmp);

You may have to fudge it a bit to get the quotes all correct.

-david-

Reply With Quote