ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Разделитель строк с условием в массиве
  #1  
Старый 25.05.2010, 00:55
Аватар для Foster
Foster
Познающий
Регистрация: 14.07.2005
Сообщений: 62
Провел на форуме:
348453

Репутация: 6
Отправить сообщение для Foster с помощью ICQ
По умолчанию Разделитель строк с условием в массиве

Не могу в скрипте организовать сепаратор в виде пунктиров "---" в одну строку, для того что бы после сортировки разделять разные им строки с разными уидами.
Под уидами я подразумеваю содержимое первых квадратных скобок в каждой строке:1234,107,357,1234
В идеале после обработки текста скриптом должно получится так:
PHP код:
13.05.2010 22:20:38 Продал (0.0.0.0за 49 для ник [107] (0.0.0.0Зелье [39235296] (50) [7/7]
13.05.2010 22:21:29 Продал (0.0.0.0за 49 для ник [357] (0.0.0.0Зелье [39235287] (50) [7/7] --------------------------------------------------------------------------------------------  13.05.2010 00:13:01 Купил  (0.0.0.0за 132 у ник [1234] (0.0.0.0Сумка [27180101] (132) [132/132]  13.05.2010 00:13:54 Продал  (0.0.0.0за 132 у ник [1234] (0.0.0.0Сумка [27180101] (132) [132/132]   -------------------------------------------------------------------------------------------- 
Ниже код скрипта, я не стал его коверкать и выложил не тронутый моей идеей вариант
PHP код:
$str='13.05.2010 00:13:13 Купил  (0.0.0.0) за 132 у ник [1234] (0) Сумка [27180101] (132) [132/132] 
13.05.2010 22:20:38 Продал (0.0.0.0) за 49 для ник [107] (0.0.0.0) Зелье [39235296] (50) [7/7] 
13.05.2010 22:21:29 Продал (0.0.0.0) за 49 для ник [357] (0.0.0.0) Зелье [39235287] (50) [7/7] 
13.05.2010 00:13:42 Купил  (0.0.0.0) за 132 у ник [1234] (0) Сумка [27180101] (132) [132/132] '
;
$strArr=explode("\r\n",$str);
foreach (
$strArr as $key => $value) { 
$check=preg_match_all('#\((.+?)\)#',$strArr[$key],$m);
if(
$m[1][0] == $m[1][1]) {
$strArr[$key]="<b><span style=\"background-color: red; color: white\">$strArr[$key]</span></b>"; }

$uid=preg_match('#^.+?\[(\w+\w)\]#',$strArr[$key],$m);
$uid=$m[1];

   
$ar[$key]=$uid
echo
"<pre>";



asort($ar); 

foreach (
$ar as $key => $value
      {
          echo 
"$strArr[$key]<br>"
      } 

Последний раз редактировалось Foster; 25.05.2010 в 02:19..
 
Ответить с цитированием

  #2  
Старый 25.05.2010, 02:13
Аватар для Chaak
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


Отправить сообщение для Chaak с помощью ICQ
По умолчанию

ну переносы строк \n заменить на ----?
 
Ответить с цитированием

  #3  
Старый 25.05.2010, 02:18
Аватар для Foster
Foster
Познающий
Регистрация: 14.07.2005
Сообщений: 62
Провел на форуме:
348453

Репутация: 6
Отправить сообщение для Foster с помощью ICQ
По умолчанию

Я видно не совсем правильно изложил свою мысль.

Не кажду строку надо отделять а только те и только пачками(по 2ум и более строкам) которые после сортировки содежат одинаковые юиды. В данном случаи [1234], это первая и 4ая строки. Они должны отделяться отовсех других строк разделителем "-------"
 
Ответить с цитированием

  #4  
Старый 25.05.2010, 09:07
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

preg_match + array_unique
 
Ответить с цитированием

  #5  
Старый 25.05.2010, 15:37
Аватар для Foster
Foster
Познающий
Регистрация: 14.07.2005
Сообщений: 62
Провел на форуме:
348453

Репутация: 6
Отправить сообщение для Foster с помощью ICQ
По умолчанию

Цитата:
Сообщение от Isis  
preg_match + array_unique
Прости не совсем понял тебя, array_unique удаляет повторяющиеся элементы в массиве. Мне же нужно их сохранить. И как я писал выше разделить пачку одинаковых уидов символом дефиса "-"
 
Ответить с цитированием

  #6  
Старый 25.05.2010, 15:46
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

2 Foster: оно?

PHP код:
<pre>
<?php 
 $str
='13.05.2010 00:13:13 Купил  (0.0.0.0) за 132 у ник [1234] (0) Сумка [27180101] (132) [132/132]  
13.05.2010 22:20:38 Продал (0.0.0.0) за 49 для ник [107] (0.0.0.0) Зелье [39235296] (50) [7/7]  
13.05.2010 22:21:29 Продал (0.0.0.0) за 49 для ник [357] (0.0.0.0) Зелье [39235287] (50) [7/7]  
13.05.2010 00:13:42 Купил  (0.0.0.0) за 132 у ник [1234] (0) Сумка [27180101] (132) [132/132] '

$strArr=explode("\r\n",$str); 
foreach (
$strArr as $key => $value) {  
$check=preg_match_all('#\((.+?)\)#',$strArr[$key],$m); 
if(
$m[1][0] == $m[1][1]) { 
$strArr[$key]="$strArr[$key]<br>-----------------"; } 

$uid=preg_match('#^.+?\[(\w+\w)\]#',$strArr[$key],$m); 
$uid=$m[1]; 

   
$ar[$key]=$uid;  
echo
"<pre>"

}  

asort($ar);  

foreach (
$ar as $key => $value)  
      { 
          echo 
"$strArr[$key]<br>";  
      } 
?>
<pre>
 
Ответить с цитированием

  #7  
Старый 25.05.2010, 16:13
Аватар для Foster
Foster
Познающий
Регистрация: 14.07.2005
Сообщений: 62
Провел на форуме:
348453

Репутация: 6
Отправить сообщение для Foster с помощью ICQ
По умолчанию

2 Pashkela:
Не совсем, ведь условие
PHP код:
$m[1][0] == $m[1][1
Сравнивает значения в первых и вторых круглых скобках в строке. А нужно сравнивать первое вхождение квадратных скобок со скобками последующих строк

Мне надо как уже писал отделить пачки одинаковых юидов.
 
Ответить с цитированием

  #8  
Старый 25.05.2010, 16:54
Аватар для Foster
Foster
Познающий
Регистрация: 14.07.2005
Сообщений: 62
Провел на форуме:
348453

Репутация: 6
Отправить сообщение для Foster с помощью ICQ
По умолчанию

В принципе работает, но почему-то ставит дифизы перед последней строкой с одинаковым уидом, отсекая тем самым её от остальной пачки в которой по сути и должна находится.

PHP код:
asort($ar); 
//print_r ($ar);
foreach ($ar as $key => $value)
if (
current($ar) !== next($ar)) 
{ echo 
"<font color='blue'>$strArr[$key]</font><br>-----------------------------------------------------------------------------------------------<br>"; }
else {
  echo 
"$strArr[$key]<br>"; }
?> 
Вот что примерно получается
Цитата:
-----------------------------------------------------------------------------------------------
15.05.2010 13:45:36 Купил (94.228.116.88) за 295 у Slim zdrt [1941244] (95.153.69.250) Фронтовые 100 грамм [39168658] (150 NV) [9/10]
16.03.2010 09:13:16 Продал (94.228.116.88) за 690 для EvilBella [1960627] (89.235.248.233) Телескопическая Удочка [37846893] (700 NV) [700/700]
-----------------------------------------------------------------------------------------------
16.03.2010 09:13:59 Продал (94.228.116.88) за 986 для EvilBella [1960627] (89.235.248.233) Телескопический Спиннинг [36740596] (1000 NV) [1000/1000]
29.04.2010 15:14:06 Продал (94.228.116.88) за 780 для blood dragon [1994652] (83.139.42.106) Доспех Риска [23104249] (790 NV) [120/120]
29.04.2010 14:54:06 Купил (94.228.116.88) за 2750 у blood dragon [1994652] (83.139.42.106) Наручи Атланта [32716583] (550 NV) [100/100]
29.04.2010 15:18:52 Продал (94.228.116.88) за 619 для blood dragon [1994652] (83.139.42.106) Наручи Смятения (ап) [11620844] (599 NV) [80/80]
29.04.2010 15:18:13 Продал (94.228.116.88) за 255 для blood dragon [1994652] (83.139.42.106) Шлем Недосягаемости [38189612] (260 NV) [70/70]
29.04.2010 15:16:02 Продал (94.228.116.88) за 393 для blood dragon [1994652] (83.139.42.106) Кристальное Кольцо (ап) [15155908] (398 NV) [70/70]
29.04.2010 15:04:34 Продал (94.228.116.88) за 316 для blood dragon [1994652] (83.139.42.106) Кольчуга Ратника [38809645] (320 NV) [100/100]
29.04.2010 15:21:24 Продал (94.228.116.88) за 324 для blood dragon [1994652] (83.139.42.106) Таинственные Перчатки (ап) [20000233] (324 NV) [40/40]
29.04.2010 15:05:55 Продал (94.228.116.88) за 281 для blood dragon [1994652] (83.139.42.106) Кольчуга Зрелости [23193796] (285 NV) [90/90]
29.04.2010 15:07:45 Продал (94.228.116.88) за 415 для blood dragon [1994652] (83.139.42.106) Кольчуга Агрессии (ап) [11620837] (420 NV) [90/90]
29.04.2010 15:22:54 Продал (94.228.116.88) за 544 для blood dragon [1994652] (83.139.42.106) Перчатки Скованности (ап) [11620841] (550 NV) [70/70]
-----------------------------------------------------------------------------------------------
29.04.2010 15:15:01 Продал (94.228.116.88) за 235 для blood dragon [1994652] (83.139.42.106) Печатка Предела (ап) [8864064] (238 NV) [45/45]
-----------------------------------------------------------------------------------------------
17.04.2010 02:24:15 Купил (94.228.116.88) за 65 у Взломанный Дорогой [1996638] (213.180.111.175) Зелье Сильной Спины [38495752] (50 NV) [7/7]
-----------------------------------------------------------------------------------------------
20.05.2010 18:10:08 Купил (94.228.116.88) за 600 у Вёрткий [2003482] (193.107.109.65) Зелье Панциря [39355493] (150 NV) [3/3]
 
Ответить с цитированием

  #9  
Старый 25.05.2010, 17:26
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

а так?

PHP код:
<?php 
 $str
='15.05.2010 13:45:36 Купил (94.228.116.88) за 295 у Slim zdrt [1941244] (95.153.69.250) Фронтовые 100 грамм [39168658] (150 NV) [9/10] 
16.03.2010 09:13:16 Продал (94.228.116.88) за 690 для EvilBella [1960627] (89.235.248.233) Телескопическая Удочка [37846893] (700 NV) [700/700] 
16.03.2010 09:13:59 Продал (94.228.116.88) за 986 для EvilBella [1960627] (89.235.248.233) Телескопический Спиннинг [36740596] (1000 NV) [1000/1000] 
29.04.2010 15:14:06 Продал (94.228.116.88) за 780 для blood dragon [1994652] (83.139.42.106) Доспех Риска [23104249] (790 NV) [120/120] 
29.04.2010 14:54:06 Купил (94.228.116.88) за 2750 у blood dragon [1994652] (83.139.42.106) Наручи Атланта [32716583] (550 NV) [100/100] 
29.04.2010 15:18:52 Продал (94.228.116.88) за 619 для blood dragon [1994652] (83.139.42.106) Наручи Смятения (ап) [11620844] (599 NV) [80/80] 
29.04.2010 15:18:13 Продал (94.228.116.88) за 255 для blood dragon [1994652] (83.139.42.106) Шлем Недосягаемости [38189612] (260 NV) [70/70] 
29.04.2010 15:16:02 Продал (94.228.116.88) за 393 для blood dragon [1994652] (83.139.42.106) Кристальное Кольцо (ап) [15155908] (398 NV) [70/70] 
29.04.2010 15:04:34 Продал (94.228.116.88) за 316 для blood dragon [1994652] (83.139.42.106) Кольчуга Ратника [38809645] (320 NV) [100/100] 
29.04.2010 15:21:24 Продал (94.228.116.88) за 324 для blood dragon [1994652] (83.139.42.106) Таинственные Перчатки (ап) [20000233] (324 NV) [40/40] 
29.04.2010 15:05:55 Продал (94.228.116.88) за 281 для blood dragon [1994652] (83.139.42.106) Кольчуга Зрелости [23193796] (285 NV) [90/90] 
29.04.2010 15:07:45 Продал (94.228.116.88) за 415 для blood dragon [1994652] (83.139.42.106) Кольчуга Агрессии (ап) [11620837] (420 NV) [90/90] 
29.04.2010 15:22:54 Продал (94.228.116.88) за 544 для blood dragon [1994652] (83.139.42.106) Перчатки Скованности (ап) [11620841] (550 NV) [70/70] 
29.04.2010 15:15:01 Продал (94.228.116.88) за 235 для blood dragon [1994652] (83.139.42.106) Печатка Предела (ап) [8864064] (238 NV) [45/45] 
17.04.2010 02:24:15 Купил (94.228.116.88) за 65 у Взломанный Дорогой [1996638] (213.180.111.175) Зелье Сильной Спины [38495752] (50 NV) [7/7] 
20.05.2010 18:10:08 Купил (94.228.116.88) за 600 у Вёрткий [2003482] (193.107.109.65) Зелье Панциря [39355493] (150 NV) [3/3] '

$strArr=explode("\r\n",$str);
$temp=""
foreach (
$strArr as $key => $value) {  
  
preg_match('#^.+?\[(\w+\w)\]#',$value,$m);
  if (
$temp!=$m[1]){
      echo 
"<br>---------------------<br>" $value;
  } else {
      echo 
"<br>" $value;
  }
  
$temp=$m[1]; 
}
?>
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярка с условием GivioN PHP, PERL, MySQL, JavaScript 7 20.05.2010 19:14
как убрать пароль админа Vista?(с условием) REBUUS Болталка 14 17.10.2009 13:35
поиск в массиве Student :) PHP, PERL, MySQL, JavaScript 4 29.07.2009 23:34



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ