<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890721</guid>
        <pubDate>Wed, 10 May 2023 20:29:21 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890721</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=434940&view=findpost&p=3890720'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2023-05-10T23:19:27+03:00">10.05.23, 20:19</time></span><div class='quote '>Не всегда. Пример:<br>
<br>
-apple-iphone-13-128-gb-violett-dual-sim-&lt;любое семизначное число&gt;<br>
<br>
Тебе нужно предусмотреть 9+ млн &quot;вариантов&quot; и их перебрать в цикле. Регулярка это делает за раз.</div></div><br>
С этим соглашусь, но это не может быть ключов в этой задаче т.к. это скорее уникальный идентификатор. Скорее подошло бы указание цвета в виде кода<br>
<br>
-apple-iphone-13-128-gb-#8A2BE2-dual-sim-2764482<br>
-apple-iphone-13-128-gb-#9370DB-dual-sim-2764482<br>
-apple-iphone-13-128-gb-#BA55D3-dual-sim-2764482<br>
-apple-iphone-13-128-gb-#FF00FF-dual-sim-2764482<br>
-apple-iphone-13-128-gb-#EE82EE-dual-sim-2764482]]></description>
        <author>macomics</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890720</guid>
        <pubDate>Wed, 10 May 2023 20:19:27 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890720</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=434940&view=findpost&p=3890719'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>macomics &#064; <time class="tag-quote__quoted-time" datetime="2023-05-10T18:14:39+00:00">10.05.23, 18:14</time></span><div class='quote '>Но на обработку регулярного выражения явно тратится больше времени, чем на сопоставление двух массивов по индексам.</div></div><br>
Не всегда. Пример:<br>
<br>
-apple-iphone-13-128-gb-violett-dual-sim-&lt;любое семизначное число&gt;<br>
<br>
Тебе нужно предусмотреть 9+ млн &quot;вариантов&quot; и их перебрать в цикле. Регулярка это делает за раз.]]></description>
        <author>Majestio</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890719</guid>
        <pubDate>Wed, 10 May 2023 18:14:39 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890719</link>
        <description><![CDATA[macomics: Но на обработку регулярного выражения явно тратится больше времени, чем на сопоставление двух массивов по индексам.]]></description>
        <author>macomics</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890717</guid>
        <pubDate>Wed, 10 May 2023 18:02:50 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890717</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=434940&view=findpost&p=3890715'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>macomics &#064; <time class="tag-quote__quoted-time" datetime="2023-05-10T17:20:40+00:00">10.05.23, 17:20</time></span><div class='quote '>А внутренних циклов надо посмотреть где ещё будет больше. Разбор регулярного выражения явно сложнее простого индексирования.</div></div><br>
Вместо массива массивов строк замены - я предлагаю массив регулярок. Не думаю, что с массивом регулярок возникнут какие-то значимые сложности.]]></description>
        <author>Majestio</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890715</guid>
        <pubDate>Wed, 10 May 2023 17:20:40 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890715</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=434940&view=findpost&p=3890703'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2023-05-10T12:26:42+00:00">10.05.23, 12:26</time></span><div class='quote '>Можно вместо массива вариантов строк - использовать регулярные выражения (собственно в которых и &quot;зашиваются&quot; варианты).<br>
Плюс этого подхода в том, что одной проверкой можно оценить сразу весь список вариантов, без организации внутренних циклов.</div></div><br>
Регулярное выражение не так удобно редактировать при наличии большого списка замен. А массивы можно легко загрузить хоть из файла, хоть из базы данных. А внутренних циклов надо посмотреть где ещё будет больше. Разбор регулярного выражения явно сложнее простого индексирования.]]></description>
        <author>macomics</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890711</guid>
        <pubDate>Wed, 10 May 2023 13:56:37 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890711</link>
        <description><![CDATA[iPhonesoft: Спасибо за идею&#33; Буду тоже пробовать, посмотрю потом, какой из вариантов будет удобней в работе.]]></description>
        <author>iPhonesoft</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890703</guid>
        <pubDate>Wed, 10 May 2023 12:26:42 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890703</link>
        <description><![CDATA[Majestio: Можно вместо массива вариантов строк - использовать регулярные выражения (собственно в которых и &quot;зашиваются&quot; варианты). <br>Плюс этого подхода в том, что одной проверкой можно оценить сразу весь список вариантов, без организации внутренних циклов.]]></description>
        <author>Majestio</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890698</guid>
        <pubDate>Wed, 10 May 2023 11:18:24 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890698</link>
        <description><![CDATA[iPhonesoft: Спасибо за Вашу идею&#33; Наверное это самый простой вариант, привести все данные к единому виду.]]></description>
        <author>iPhonesoft</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890697</guid>
        <pubDate>Wed, 10 May 2023 10:49:44 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890697</link>
        <description><![CDATA[macomics: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">$string = str_replace(array(&quot;violett&quot;,&quot;128gb&quot;), array(&quot;purple&quot;,&quot;128-gb&quot;), &quot;-apple-iphone-13-128-gb-violett-dual-sim-2764482&quot;);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>macomics</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890688</guid>
        <pubDate>Wed, 10 May 2023 06:38:56 +0000</pubDate>
        <title>Поиск несколько подстрок в строке?</title>
        <link>https://forum.sources.ru/index.php?showtopic=434940&amp;view=findpost&amp;p=3890688</link>
        <description><![CDATA[iPhonesoft: Добрый день&#33;<br>
<br>
Есть вот такой пример кода, который ищет в строке, все слова взятые из массива.<br>
Если все слова найдены, выдается результат True, если хотя бы одно слово не найдено, - False.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#60;?php</div><div class="code_line">&nbsp;</div><div class="code_line">$keywords = array(&#39;apple&#39;, &#39;iphone-13&#39;, &#39;128-gb&#39;, &#39;violett&#39;);</div><div class="code_line">$string = &#39;-apple-iphone-13-128-gb-violett-dual-sim-2764482&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">echo &#39;String: &#39;.$string.&quot;&#60;br&#62;&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">// Подсчитаем, сколько всего ключевых слов в массиве</div><div class="code_line">$keywords_total = count($keywords);</div><div class="code_line">&nbsp;</div><div class="code_line">// Объявим переменную &quot;keywords_find&quot;</div><div class="code_line">$keywords_find = 0;</div><div class="code_line">&nbsp;</div><div class="code_line">// Перебираем массив, и ищем в строке каждое ключевое слово из массива</div><div class="code_line">foreach ($keywords as &amp;$keyword) {</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;// Если ключевое слово найдено в строке</div><div class="code_line">&nbsp;&nbsp;if (strpos($string, $keyword)) {</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Увеличиваем на единицу переменную &quot;keywords_find&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$keywords_find++;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &#39;Keyword: &#39;.$keyword.&quot; (True)&#60;br&#62;&quot;;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;// Если ключевое слово не найдено в строке</div><div class="code_line">&nbsp;&nbsp;else {</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &#39;Keyword: &#39;.$keyword.&quot; (False)&#60;br&#62;&quot;;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">echo &#39;Total Keywords: &#39;.$keywords_total.&quot;&#60;br&#62;&quot;;</div><div class="code_line">echo &#39;Find Keywords: &#39;.$keywords_find.&quot;&#60;br&#62;&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">// Если количество найденных в строке ключевых слов, равно количеству</div><div class="code_line">// кличевых слов в массиве</div><div class="code_line">if ($keywords_find == $keywords_total) {</div><div class="code_line">&nbsp;&nbsp;echo &#39;Result: True&#60;br&#62;&#39;;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">// Если не равно</div><div class="code_line">else {</div><div class="code_line">&nbsp;&nbsp;echo &#39;Result: False&#60;br&#62;&#39;;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">?&#62;</div></ol></div></div></div></div><br>
<br>
<br>
Результат:<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
String: -apple-iphone-13-128-gb-violett-dual-sim-2764482<br>
<br>
Keyword: apple (True)<br>
Keyword: iphone-13 (True)<br>
Keyword: 128-gb (True)<br>
Keyword: violett (True)<br>
<br>
Total Keywords: 4<br>
Find Keywords: 4<br>
<br>
Result: True<br>
</div></div><br>
<br>
Дело в том, что в заданной строке, название одного и того же цвета, может быть написано по разному, например: &quot;violett&quot; или &quot;purple&quot;. (-apple-iphone-13-128-gb-<strong class='tag-b'>purple</strong>-dual-sim-2764482) или (-apple-iphone-13-128-gb-<strong class='tag-b'>violett</strong>-dual-sim-2764482)<br>
Объем памями тоже может быть указан в строке, как: &quot;128-gb&quot; или &quot;128gb&quot;.<br>
<br>
Собственно сам вопрос, какие будут идеи, чтобы при проверки строки, можно было учесть все эти нюансы, чтобы добиться результата True?]]></description>
        <author>iPhonesoft</author>
        <category>PHP</category>
      </item>
	
      </channel>
      </rss>
	