Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.09.2017, 20:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
да, будет по длине фиксированной.
Ну если фиксирована длина, то проще - array_filter и в нем проверять на совпадения от начала на длину маски.

http://fi2.php.net/manual/ru/function.array-filter.php
http://fi2.php.net/manual/ru/function.strstr.php

Последний раз редактировалось laimas, 06.09.2017 в 20:40.
Ответить с цитированием
  #12 (permalink)  
Старый 06.09.2017, 20:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Возможно я не понял - фиксированная, это знаем что к примеру 4 символа, но не знаем какие именно?
Ответить с цитированием
  #13 (permalink)  
Старый 06.09.2017, 20:43
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,706

Сообщение от laimas Посмотреть сообщение
Nexus,
цифры, латиница, управляющие символы в монгобайтной кодировке все равно занимают один байт, $charset='UTF-8' и mb_strlen для них совсем не требуется.
Ну так это в моем коде только циферки используются, что действительно в файле находится и что необходимо искать - я без понятия.
Ответить с цитированием
  #14 (permalink)  
Старый 06.09.2017, 20:45
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Сообщение от laimas Посмотреть сообщение
Возможно я не понял - фиксированная, это знаем что к примеру 4 символа, но не знаем какие именно?
Да, именно так, сейчас буду разбираться по ссылкам.
Ответить с цитированием
  #15 (permalink)  
Старый 06.09.2017, 20:58
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

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

Функция «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;
Ответить с цитированием
  #17 (permalink)  
Старый 06.09.2017, 21:11
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Сообщение от laimas Посмотреть сообщение
Ну если фиксирована длина, то проще - array_filter и в нем проверять на совпадения от начала на длину маски.
В фильтре вставить strstr с параметрами от первого до n-го символа?
Ответить с цитированием
  #18 (permalink)  
Старый 06.09.2017, 21:21
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Сообщение от Nexus Посмотреть сообщение
Функция «func» ищет в списке слов те, которые начинаются на одни и те же символы; принимает массив слов и длину строки; возвращает искомое, как массив.
Пыталась использовать код по поиску по словам, но при определенной длине строки из цифровых кодов, он просто переставал работать. Кодов может быть очень много, именно поэтому решила использовать код, который выложила. Чтобы было понятно о размере, то до 500 000 кодов, данный проверяла почти на 700 000, работает очень быстро, память не грузит.
Ответить с цитированием
  #19 (permalink)  
Старый 06.09.2017, 21:31
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,706

Sonya, или я очень устал, или вы действительно изъясняетесь так, что вас невозможно понять...

У вас есть:
1. файл, который содержит список чисел, разделенных запятыми;
2. длинна искомой строки.

Нужно:
Определить сколько слов имеет одинаковое начало и вернуть список этих слов.

Верно?

Код, что я привел зависает, если ему передать на обработку массив длинною в пол миллиона элементов?
Ответить с цитированием
  #20 (permalink)  
Старый 06.09.2017, 21:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
В фильтре вставить strstr с параметрами от первого до n-го символа?
Нет, если неизвестна сама маска, а только ее длина, то strstr не нужен, нужно брать отрезок равный длине символов.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление всех &nbsp; из текста (поиск и удаление любого слова из текста) Stenli jQuery 5 28.06.2017 19:47
Поиск слова по заглавной букве Vladislav306907 jQuery 7 25.04.2016 16:34
Поиск слова на странице (javascript) Корделия Элементы интерфейса 9 15.08.2013 17:44
Поиск слова в исходном коде html страницы klsorat2010 Ваши сайты и скрипты 1 20.05.2010 23:46
Поиск последнего слова в строке AlexFadeev Элементы интерфейса 3 01.04.2010 18:56