Есть ли способ взорвать (), используя массив разделителей?
Руководство по PHP:
array explode (string $ delimiter, string $ string [, int $ limit])
Вместо использования string $delimiter
существует ли какой-либо способ использовать array $delimiter
не слишком сильно влияя на производительность?
Используйте preg_split()
с соответствующим регулярным выражением.
$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) );
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+"
может использоваться в исходной строке.
Метод взрыва php не поддерживает множественные разделители, поэтому вы не можете передать ему массив. Кроме того, какую строку вы разбираете с несколькими разделителями? вам лучше всего зациклиться на ваших разделителях и повторно взорвать некоторые из взорванных строк.