converting string containing keys and values into array

arrays, php, string

Solution

Explode it!

$string = "business_type,cafe|business_type_plural,cafes|sample_tag,couch|business_name,couch cafe";

$finalArray = array();

$asArr = explode( '|', $string );

foreach( $asArr as $val ){
  $tmp = explode( ',', $val );
  $finalArray[ $tmp[0] ] = $tmp[1];
}

print_r( $finalArray );

This will output the following:

Array
(
    [business_type] => cafe
    [business_type_plural] => cafes
    [sample_tag] => couch
    [business_name] => couch cafe
)

Problem

does anyone know an elagant way of turning this string (the list is not definite.. the "keys" and "values" can be added arbitrarily) ``` business_type,cafe|business_type_plural,cafes|sample_tag,couch|business_name,couch cafe ``` into this array? ``` array( [business_type]=>'cafe' [business_type_plural] => 'cafes' [sample_tag]=>'couch' [business_name]=>'couch cafe' ) ```

Original source