1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $str = 'voila un (oiseau|koala) qui (chante|mange) beaucoup !';
$parts = preg_split('~[()]~', $str, -1, PREG_SPLIT_NO_EMPTY);
$mod = ( $str[0] == '(' ) ? 0 : 1; # on teste si les indexes des parenthèses sont pair ou impair
$result = [];
$tmp = [];
foreach ($parts as $k => $v) {
if ($k % 2 == $mod) { # si l'item provient d'une parenthèse
$result[] = explode('|', $v);
unset($parts[$k]);
} else {
$tmp[] = $v;
}
}
$result = array_merge($result, $tmp);
print_r($result); |
Partager