@dmitred

PHP как удалить слова по их номерам в строке?

Привет, коллеги программисты. за три года первый раз задаю вопрос по программированию, до этого всегда искал на просторах инета решения и сам приходил к ответам... но тут сроки жмут и не могу ничего найти...
помогите.

задача такая стоит:

есть текст: например

"не быть мне донором хоть и кровь конечно очень редкая но ограничения действительно есть и это не только разного рода заболевания типа инфекционных: гепатит вич спид но и венерических таких как сифилис и подобные. естественно нельзя быть донором при затемнении легких и после болезни пневмонией. так же вышло ограничение и по прописке что доноры не могут сдавать в соседних регионах кровь так как это возможность занести инфекцию то есть донор не известный нет его карты то получается нет никакого подтверждения о предыдущих болезнях и о крови в целом поэтому это вынужденная мера. думаю что это относится и к не постоянной прописке или регистрации-кому как удобно. для донорства условия становятся очень жесткими потому что случаев занесения всякой заразы и донору и потом тому кому переливают эту кровь огромное количество. естественно доноры и раньше уходят на пенсию из-за почёта да и всё время они там получают копеечки какие-то и плюс на работе тоже что-то должно капать из-за статуса донора."

есть массив с данными какие слова по номерам нужно удалить, а точнее с какого слова по какое.

а вот массив

[[2,2],[15,39],[78,78],[15,39],[154,154]]
<?php
$return['highlight']
?>

в какую сторону хотя бы думать? stristr strlen
  • Вопрос задан
  • 249 просмотров
Решения вопроса 1
PretorDH
@PretorDH
HTML5, CSS3, PHP, JS - люблю в чистом виде.
class myFilter {
  static private $exclusions;
  static private $excluded;
  static private $value;
	
  public function __construct(Array $exclusions) {
    self::$exclusions = $exclusions;
  }
  static function check($f, $v) {
    return ($f and !(self::$value >= $v[0] and self::$value <= $v[1]));
  }
  static function getFilter($val) {
    self::$value++;
    if ( !array_reduce(self::$exclusions, "myFilter::check",true) ) {
      array_push(self::$excluded, $val);
      return false;
    } else 
      return true;
  }
  public function getExcluded() {
	  return implode( ' ', self::$excluded );
  }
  public function reduce($str) {
    self::$value = -1;
    self::$excluded = [];
    return implode( ' ', array_filter(explode(' ', $str), "myFilter::getFilter" ) );
  }	
}
$f = new myFilter ( [[2,2],[15,39],[78,78],[15,39],[154,154]] );
$text = $f->reduce($text);
echo $f->getExcluded();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы