sender=user8992;session=7wdd49ea5eb118a5215c8c251d2c2a60;algorithm=SHA;content=text
jak zamienić taki string na tablicę
[
"sender" => "user8992"
"session" => "7wdd49ea5eb118a5215c8c251d2c2a60"
"algorithm" => "SHA"
"content" => "text"
]
sender=user8992;session=7wdd49ea5eb118a5215c8c251d2c2a60;algorithm=SHA;content=text
jak zamienić taki string na tablicę
[
"sender" => "user8992"
"session" => "7wdd49ea5eb118a5215c8c251d2c2a60"
"algorithm" => "SHA"
"content" => "text"
]
Jeśli klucze się nie powtarzają.
<?php
$x = "sender=user8992;session=7wdd49ea5eb118a5215c8c251d2c2a60;algorithm=SHA;content=text";
$z = explode(";",$x);
$arr = [];
foreach ($z as $row){
$y = explode("=",$row);
$arr[$y[0]] = $y[1];
}
print_r($arr);
//Result
/*
Array
(
[sender] => user8992
[session] => 7wdd49ea5eb118a5215c8c251d2c2a60
[algorithm] => SHA
[content] => text
)
*/
Bez pętli.
$x = "sender=user8992;session=7wdd49ea5eb118a5215c8c251d2c2a60;algorithm=SHA;content=text";
preg_match_all("*([^;=]+)=([^;=]+)*", $x, $m);
$result = array_combine($m[1], $m[2]);
print_r($result);
To może jeszcze ja. Z lekką nutką defensywną :)
$string = 'sender=user8992;session=7wdd49ea5eb118a5215c8c251d2c2a60;algorithm=SHA;content=text';
$array = explode(';', $string);
$fn = function ($key, $value): ?array {
$tmp = explode('=', $value, 2);
if (count($tmp) !== 2) {
return null;
}
return [$tmp[0], $tmp[1]];
};
$data = array_column(array_map($fn, array_keys($array), $array), 1, 0);
@old_man: ale można tak: parse_str(str_replace(';', '&', $text), $result);