Подтвердить что ты не робот

Взрыв по массиву разделителей

Есть ли способ взорвать() с помощью массива разделителей?

Руководство по PHP:

array explode (string $delimiter, string $string [, int $limit])

Вместо использования string $delimiter можно ли использовать array $delimiter, не слишком сильно влияя на производительность?

4b9b3361

Ответ 1

Используйте preg_split() с соответствующим регулярным выражением.

Ответ 2

$str = 'Monsters are SUPER scary, bro!';
$del = array('a', 'b', 'c');

// In one fell swoop...
$arr = explode( $del[0], str_replace($del, $del[0], $str) );

Ответ 3

function explode_by_array($delim, $input) {
  $unidelim = $delim[0];
  $step_01 = str_replace($delim, $unidelim, $input); //Extra step to create a uniform value
  return explode($unidelim, $step_01);
}

Это улучшило код @65Fbef05. Мы используем первый разделитель, потому что "+delim+" может использоваться в исходной строке.

Ответ 4

Метод php explode не поддерживает множественные разделители, поэтому вы не можете передать ему массив. Кроме того, какую строку вы разбираете с несколькими разделителями? вам лучше всего зациклиться на ваших разделителях и повторно взорвать некоторые из взорванных строк.