<?php
$string = 'title:hello;desc:message|title:lorem;desc:ipsum;ids:1,2,3';
$result = [];
foreach (explode('|', $string) as $setString) {
$set = [];
foreach (explode(';', $setString) as $rowString) {
[$key, $value] = explode(':', $rowString);
$set[$key] = str_contains($value, ',') ? explode(',', $value) : $value;
}
$result[] = $set;
}
var_export($result);
/*
Array
(
[0] => Array
(
[title] => hello
[desc] => message
)
[1] => Array
(
[title] => lorem
[desc] => ipsum
[ids] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
)*/
- Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- array (
0 =>
array (
'title' => 'hello',
'desc' => 'message',
),
1 =>
array (
'title' => 'lorem',
'desc' => 'ipsum',
'ids' =>
array (
0 => '1',
1 => '2',
2 => '3',
),
),
)
preferences:
65 ms | 407 KiB | 5 Q