<?php
$str = '{xxx} some text 1{*|, some text 2 {xxx}}{*|, some text 3 {xxx}}{*|, 1 {xxx} some text 4}{*|, 1 {xxx} some text 5}';
$values = explode('{*|,', $str);
$newArray = [];
for ($i = 1; $i < count($values); $i++) {
$newArray[$values[0]][$i - 1] = $values[$i];
}
var_export($newArray);
array (
'{xxx} some text 1' =>
array (
0 => ' some text 2 {xxx}}',
1 => ' some text 3 {xxx}}',
2 => ' 1 {xxx} some text 4}',
3 => ' 1 {xxx} some text 5}',
),
)