Показать сообщение отдельно
  #16 (permalink)  
Старый 06.09.2017, 21:10
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Функция «func» ищет в списке слов те, которые начинаются на одни и те же символы; принимает массив слов и длину строки; возвращает искомое, как массив.
<?php

	function func(array $words,$length){
		$ch='UTF-8';
		$results=array();
		foreach($words as $string){
			if(mb_strlen($string,$ch)<$length) 
				continue;
			
			$str=mb_substr($string,0,$length,$ch);
			if(!isset($results[$str]))
				$results[$str]=array();
				
			$results[$str][]=$string;
		};
		
		return (array_map(function($vals){
			return array_unique($vals);
		},array_filter($results,function($vals){
			return count($vals)>1;
		})));
	};

	$string='Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов. Lorem Ipsum не только успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн. Его популяризации в новое время послужили публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более недавнее время, программы электронной вёрстки типа Aldus PageMaker, в шаблонах которых используется Lorem Ipsum.';
	
	$string=preg_replace('#\W+?#uim',',',mb_strtolower($string,'UTF-8'));
	$string=array_filter(explode(',',$string));
	var_dump(func($string,5));
	exit;
Ответить с цитированием