Автор Тема: Нахождение строк в массиве  (Прочитано 4026 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kide

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://coincenter.net
Нахождение строк в массиве
« : 01 Октября 2003, 16:12:06 »
Есть массив,в котором иногда попадаются строки содержащие только / , и их надо убить!
Как?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Нахождение строк в массиве
« Ответ #1 : 01 Октября 2003, 16:15:01 »
в цикле

Оффлайн kide

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://coincenter.net
Нахождение строк в массиве
« Ответ #2 : 01 Октября 2003, 16:26:39 »
Я делал так:
for ($i=$k; $i<$m; $i++) {
if ($screen[$i]=="/")
 {
$screen[$i]="";
};
};
, где $screen и есть мой массив. Условие не выполняется и все!
« Последнее редактирование: 01 Октября 2003, 16:47:45 от kide »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Нахождение строк в массиве
« Ответ #3 : 01 Октября 2003, 16:35:12 »
Для начала, у тебя в этом коде не хватает одной скобки и он вообще работать не будет.

Далее.
Если условие не выполняется, то из этого следует очень простой вывод.
в массиве НЕТ элементов, состоящих из "/"
Элементарно, правда?
И не спеши возражать.
убедись сам, что это так.

подсказка.
То ,что мы воздуха не видим, еще не означает, что его не нет?

Оффлайн kide

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://coincenter.net
Нахождение строк в массиве
« Ответ #4 : 01 Октября 2003, 16:51:59 »
Цитировать
RomikChef:
Для начала, у тебя в этом коде не хватает одной скобки и он вообще работать не будет.

Скобку забыл скопировать (уже исправил) !
Цитировать
RomikChef:
То ,что мы воздуха не видим, еще не означает, что его не нет?

И про воздух ты прав! Незаметил пробелы. Но их количество непостоянно, как теперь написать условие?

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Нахождение строк в массиве
« Ответ #5 : 01 Октября 2003, 17:11:06 »

for ($i=$k$i<$m$i++) {
    
$t_screen=str_replace(" """$screen[$i]);
    if (
$t_screen=="/")
    {
         
$screen[$i]="";
    };
};

или в регулярные выражения подаца
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Нахождение строк в массиве
« Ответ #6 : 01 Октября 2003, 17:18:38 »
Аали, если там одна палка, то trim() там будет как раз на месте :-)))
Да и заменять специально не надо.
Ему же потом неболь эту штуку имплодить обратно.

kide
просто в условие добавь
if (trim($screen[$i])=="/")

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Нахождение строк в массиве
« Ответ #7 : 01 Октября 2003, 17:22:11 »
Цитировать
RomikChef:
Аали, если там одна палка, то trim()

дык я тоже сначала про трим подумал, но он ж грит
Цитировать
kide:
их количество непостоянно

трим жеж уберет тока первый и последний пробел, а если там "пробелпробелпалкапробел" то получится "пробелпалка"

но если там канешна может быть только по одному, то трим конечно
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Нахождение строк в массиве
« Ответ #8 : 01 Октября 2003, 17:28:30 »
Цитировать
AliMamed:
трим жеж уберет тока первый и последний пробел

ай-яй-яй :-))))
Какое забавное заблуждение :-))))
Впервые с таким сталкиваюсь.
трим убирает начальные и конечные, а не первый и последний.
Это все проблемы перевода.

трим убирает ВСЕ пробельные символы в начале и в конце строки.
trim("  \\n\\t\\t\\t  \\n   aaa  \\n\\n\\n\\r\\t\\n   \\n") вернет тебе "aaa"

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Нахождение строк в массиве
« Ответ #9 : 01 Октября 2003, 17:37:14 »
Цитировать
RomikChef:
ай-яй-яй :-))))

ить! ща проверил - и правда все убирает. хм
это меня ман в заблуждение ввел. про перевод не знаю но вот, что в оригинале
Цитировать
trim --  Strip whitespace from the beginning and end of a string


кто скажет, что whitespace не единственное число в того я первым брошу камень=)
ну, будем исповедоваться?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Нахождение строк в массиве
« Ответ #10 : 01 Октября 2003, 17:40:38 »
space - единственное
whitespace - это термин, который и означает всю эту лабуду

Оффлайн kide

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://coincenter.net
Нахождение строк в массиве
« Ответ #11 : 02 Октября 2003, 14:35:30 »
Цитировать
RomikChef:
просто в условие добавь
if (trim($screen[$i])=="/")

Спасибо! Все работает!

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Нахождение строк в массиве
« Ответ #12 : 02 Октября 2003, 15:20:23 »
Цитировать
AliMamed:
кто скажет, что whitespace не единственное число в того я первым брошу камень=)

Ты просто неправильно перевел...
whitespace переводится дословно "свободное место/пространство", более техническим языком проблельные символы или \\s+ (один или более пробелов).
работа в Украине

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28