Home > Software design >  Array key value pair from string
Array key value pair from string

Time:10-07

I have a string

$str = 'utmcsr=google|utmcmd=organic|utmccn=(not set)|utmctr=(not provided)';

Need to convert this string in below format.

$utmcsr = google;
$utmcmd= organic;
$utmccn= (not set);
$utmctr= (not provided);

and more can come. I have try explode and slip function but not gives result. Please suggest. Thanks in advance

CodePudding user response:

With "Double explode" you can extract all key-value pairs from the string. First, explode on the pipe symbol, the resuting array contains strings like utmcsr=google. Iterate over this array and explode each string on the equal sign:

$result = [];
$str = 'utmcsr=google|utmcmd=organic|utmccn=(not set)|utmctr=(not provided)';
$arr = explode('|', $str);
foreach($arr as $str2) {
    $values = explode('=', $str2);
    $result[ $values[0] ] = $values[1];
}

CodePudding user response:

Try this one

$str = 'utmcsr=google|utmcmd=organic|utmccn=(not set)|utmctr=(not provided)';

$new_array = explode('|', $str);
$result_array = array();
foreach ($new_array as $value) {
    $new_arr = explode('=', $value);
    $result_array[$new_arr[0]] = $new_arr[1];
}
extract($result_array);
echo $utmcsr;
echo $utmctr;

Output: google(not provided)

  •  Tags:  
  • php
  • Related