Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 30.03.2003, 19:39
Delt@DIM вне форума Посмотреть профиль Отправить личное сообщение для Delt@DIM Посетить домашнюю страницу Delt@DIM Найти все сообщения от Delt@DIM
  № 1  
Delt@DIM

Регистрация: Jul 2002
Сообщений: 161
Отправить сообщение для Delt@DIM с помощью ICQ
Question Проблема с in_array()

Помогите с одной вещью...
Вот код:
<?
$date=date("d-m-Y");
$links=file("links.txt");
if (in_array($date, $links)){
echo "Такая дата уже есть!";
}
?>

Значит так, Присваеваем первой переменной текущую дату, а переменной $links - массив из файла links.txt, в котором находятся даты:
12-12-12
23-23-23
29-32-12
15-04-12
...
Что-то в этом роде... Затем, проверяю функцией in_array сущесвует ли в массиве $links значение $date, а именно текущее число. И в случае удачи, выводит сообщение.
Дык в чем проблема, сообщение не выводится, даже если текущая дата есть в массиве $links. Может я что делаю не так?
Подскажите!

Старый 31.03.2003, 11:51
Alex Wanderer вне форума Посмотреть профиль Отправить личное сообщение для Alex Wanderer Посетить домашнюю страницу Alex Wanderer Найти все сообщения от Alex Wanderer
  № 2  
Alex Wanderer
Old Wizard
 
Аватар для Alex Wanderer

Регистрация: Feb 2001
Адрес: Beyond this World
Сообщений: 856
Отправить сообщение для Alex Wanderer с помощью ICQ
строка: $date=date("d-m-Y");
Из мануала:
The following characters are recognized in the format string:
Y - year, 4 digits; e.g. "1999"

сделай echo $date; и посмотри...
__________________
... Что? Не работает? А в сеть его включили?
-------
Если мысль не укладывается в голове -- попробуйте ее расположить вдоль спинного мозга
| AW : ЖЖ | Er |

Старый 01.04.2003, 13:17
Delt@DIM вне форума Посмотреть профиль Отправить личное сообщение для Delt@DIM Посетить домашнюю страницу Delt@DIM Найти все сообщения от Delt@DIM
  № 3  
Delt@DIM

Регистрация: Jul 2002
Сообщений: 161
Отправить сообщение для Delt@DIM с помощью ICQ
Да, это я моленько перепутал. Но даже смена даты на правильную не дает нужного результата!
Вот в чем фокус (как-то странно получается...) :
Если текстовой файл имеет следующий вид:
("_" -обозначается начало и конец файла)
_____________________________________________
12-12-2003
12-21-3144
12-43-1234
...
_____________________________________________

То эта функция бутет "странно" работать, она не будет считать первую строку за значение массива, т.е. если дата будет 12-12-2003, то функция не даст положительного ответа о нахождении значения в массиве. А если дата будет, к примеру, 12-43-1234 все сразу заработает и выдаст положительный результат. Но, есть еще один "косяк", если в текстовом файле в самом конце (в самом низу) будет пустая строка:
_____________________________________________
12-12-2003
12-21-3144
12-43-1234

_____________________________________________

Т.е. после даты 12-43-1234 стоит переход строки, то функция не будет работать вообще!!! Во как!
Кто знает как с этим бороться?

Еще есть вопрос:
Есть ли такая функция, которая удаляет ключ и значение в массиве, и смещает указатели массива:
Т.е есть массив $arr= array("1", "2", "3");
И нужно удалить первое значение значение: "2" (т.к. в массиве начало с 0), но так, чтобы сместились показатели массива, т.е. теперь первым значением массива станет "3" ("1", "3")
Или есть какие-либо подобные функции?

Старый 02.04.2003, 18:45
Alex Wanderer вне форума Посмотреть профиль Отправить личное сообщение для Alex Wanderer Посетить домашнюю страницу Alex Wanderer Найти все сообщения от Alex Wanderer
  № 4  
Alex Wanderer
Old Wizard
 
Аватар для Alex Wanderer

Регистрация: Feb 2001
Адрес: Beyond this World
Сообщений: 856
Отправить сообщение для Alex Wanderer с помощью ICQ
1) Быть может, тебя спасет такая штука:
(впиши после $links=file("links.txt"); )

Код:
for ($i=0; $i<sizeof($links); $i++) {
$links[$i]=chop($links[$i]);
};
2)array array_splice (array input, int offset [, int length [, array replacement]])

array_splice() удаляет элементы, указанные смещением offset и длиной length из массива input и замещает их элементами массива replacement, если он предоставлен. Функция возвращает массив, содержащий извлечённые элементы.
Если offset положительное, то удаляемая часть отсчитывается смещением от начала массива input. Если offset отрицательное, то удаляемая часть начинается на указанную величину от конца массива input.
Если length отсутствует, удаляется всё, начиная от offset до конца массива.
Если length специфицирована и положительная, удаляется указанное количество элементов.
Если length специфицирована и отрицательная, то конец удаляемой части будет находиться на указанное количество элементов от конца массива.
Подсказка : для удаления элементов от offset до конца массива, когда replacement также специфицирован, используйте count($input) для length.
Если массив replacement специфицирован, то удаляемые элементы замещаются элементами из этого массива. Если offset и length таковы, что ничего не удаляется, то элементы массива replacement вставляются вместо специфицированных смещением offset.
Подсказка : если replacement это один элемент, нет необходимости помещать array() вокруг него, если только элемент сам по себе не является массивом.
3) RTFM
__________________
... Что? Не работает? А в сеть его включили?
-------
Если мысль не укладывается в голове -- попробуйте ее расположить вдоль спинного мозга
| AW : ЖЖ | Er |

Старый 03.04.2003, 11:34
Delt@DIM вне форума Посмотреть профиль Отправить личное сообщение для Delt@DIM Посетить домашнюю страницу Delt@DIM Найти все сообщения от Delt@DIM
  № 5  
Delt@DIM

Регистрация: Jul 2002
Сообщений: 161
Отправить сообщение для Delt@DIM с помощью ICQ
Да это понятно!
Но а если мне нужно будет удалить 2 элемент массива, и чтобы все остальные остались на месте? Или мне нужно удалить 2 и 5 элементы...

Старый 04.04.2003, 19:37
Alex Wanderer вне форума Посмотреть профиль Отправить личное сообщение для Alex Wanderer Посетить домашнюю страницу Alex Wanderer Найти все сообщения от Alex Wanderer
  № 6  
Alex Wanderer
Old Wizard
 
Аватар для Alex Wanderer

Регистрация: Feb 2001
Адрес: Beyond this World
Сообщений: 856
Отправить сообщение для Alex Wanderer с помощью ICQ
Цитата:
Оригинал написал(а) Delt@DIM
Но а если мне нужно будет удалить 2 элемент массива, и чтобы все остальные остались на месте...
Дык, $links[2]="";
__________________
... Что? Не работает? А в сеть его включили?
-------
Если мысль не укладывается в голове -- попробуйте ее расположить вдоль спинного мозга
| AW : ЖЖ | Er |

Создать новую тему   Часовой пояс GMT +4, время: 14:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:21.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.