Forum Webscript.Ru
Программирование => PHP => Тема начата: xax от 28 Февраля 2004, 00:56:04
-
Как делается поиск нужного слова по массиву, причём поиск не повсему массиву, атолько по одному из столбцов
Если массив
a;s;d
d;f;g
g;f;g
И если мы в поиске напишем слово d и поиск будет осуществляться только по первому столбцу, то вывсти должно d
Как это сделать?
-
в массивах нет столбцов
-
RomikChef Ну, блин, ты хочешь сказать, что ты не понял что мне надо?
-
я хочу сказать, что пока ты не научишься понимать, что тебе надо, ты так и будешь бегать на форум за каждым чихом.
а если научишься понимать, то сам научишься и задачи свои решать
-
основной способ работы с массивом - перебор в цикле.
вот и перебирай
-
RomikChef А можешь привести элементарный пример?
-
у тебя этих примеров - ... жри.
ВО ВСЕХ твоих темах только и делается, ч то перебираются массивы.
и обрабатываются строки с разделителями, лежащие в них.
тампримеров - миллион
-
RomikChef Я просто не знаю, как сделать так, чтобы из формы бралось значение и потом оно сравнивалось с о значениями из массива массивов
-
перебирай массив в цикле и сравнивай каждый элемент с тем ,что пришло из формы.
-
как получать данные из формы - http://faq.phpclub.net/globals
еще вопросы есть?
-
RomikChef Да - море, в этой статье нет основ, а мне нужны именно они
-
xax Купи книжку и прочитай.
-
слушай, ты определись.
Ты хотел примеров?
Я тебе сказал, где взять примеры.
теперь тебе основы нужны.
Скажу, где взять основы - ты еще что-нибудь захочешь.
Может, хватит уже.
Бля, ребята, а ведь участь пхп форумов незавидна.
Тенденция видна очень четко.
Ксандер ушел именно из-за этого.
Информации в инете НАСТОЛЬКО уже много по пхп, что на форумы приходят только дундуки типа этого хаха.
-
Neter Да есть у меня 2, туфта, ещё ни одна книжка по компам меня ничему не научила, значитльно удобнее почитать маленькую статью и попробовать амому так сделать, а читать книжку и сидеть за компом - не по мне
-
$file="news/news.txt";
$arr=file($file);
foreach ($arr as $k=>$v) {
$arr[$k] = explode(";", $v);
}
if ($arr[$k] === $poisk) { // При условии, что $poisk уже взят из формы поиска
echo $poisk;
}
if ($arr[$k] !== $poisk) {
echo "По вашему запросу ничего не найдено";
}
?>
Вобщем я написал кое - что, но не пишут ошибку на 14 строчке,
а вообще это верно?
-
xax Думаю, что ты хронически глуп и медицина здесь бессильна :))
xax:
$file="news/news.txt";
$arr=file($file);
foreach ($arr as $k=>$v) {
$arr[$k] = explode(";", $v);
}
if ($arr[$k] === $poisk) { // При условии, что $poisk уже взят из формы поиска
echo $poisk;
}
if ($arr[$k] !== $poisk) {
echo "По вашему запросу ничего не найдено";
}
Ты сам понял что ты написал?
-
Neter
Да
Там сравниваются $arr[$k] и $poiskи в зависимости от того, какие они, то и выводится
-
xax хоть у тебя и написано,что ты фанат форума,но хоть капля достоинтсва должна быть у человека ?
-
it4all
Я пробую...
Лучше помоги
-
xax Ты пробуешь мазохистствовать.Здесь я тебе не помошник.Я тебе слал на мыло ,что делать.
-
it4all Можешь писать тут, я думаю, что Ромик не разозлится
-
xax:
it4all Можешь писать тут, я думаю, что Ромик не разозлится
Ну ты меня повеселил этим сообщением.Ромик последнее время не злится,он уже устал это делать (скорее всего его добил алексей за номером 85),он просто и тихо перекрывает "кислород",как было с тобой,если помнишь.А реально помочь тебе можно было бы еслиб ты не стесняясь описал детально,что ты хочешь делать.Глядишь и впоцессе описания и сам бы догнался (я тут гдето такое встречал).
-
it4all Я хочу, чтобы переменная, которой придали значения из формы поиска, сравнивалась с массивом массивов
тоесть
если массив
a;d;f
s;f;g
g;h;j
То массив массивов, который мне нужен - это второй столбик данного массива
Теперь мне надо, чтобы значение переменной из формы сравнивалось со всеми строчками массива массивов, и если где - то их значения совпадут, чтобы выводилось это слово, а если не нашлось совпадающих, то выводилось, что, типа, такой игры в нашей базе нету
Так вот я вродже это сделал, только без переменной из формы
-
Я Ромику клялся здоровьем близкого мне человека (дяди Билли),что не буду влазить в чужие темы с помошью.
Но ради тебя xax ,я рискну.
Еслиб ты прогулялся по другим темам,то заметил бы что,в основном более-менее помогают тем,кто просто спрашивает "Помогите сделать то-то и то-то", а не просит помощи в реализации заведомо неправельного способа поиска.
Чтоб тебе не спросить народ следующим образом -
Помогите сделать поиск по ключевому слову,где вместо базы использую текстовый файл,в котором данные расположены следующим образом (к примеру) - "номер игры ; название ; описание".
У меня есть такие мысли по этому поводу "Тра ля ля ля".
А то - переменная из формы,второй столбик,массив массивов.
И темболее если ты вродже сделал,то чего,переменную из формы не можешь подццепить?
-
it4all
Нет не могу
-
Так, не ругайте меня, больше не буду. :(
Может ещё кому эта параша пригодится. :)
хах Вот, держи, спиногрыз:
function array_megasort(&$array, $ind, $order = "asc"){
$count = count($array);
if ($ind > $count) { return 0; }
for($i = 1; $i < $count; ++$i){
for ($c = $count-1; $c >= $i; --$c){
if (($order == "asc" && $array[$c-1][$ind] > $array[$c][$ind]) || ($order == "desc" && $array[$c-1][$ind] < $array[$c][$ind])){
$temp = $array[$c-1];
$array[$c-1] = $array[$c];
$array[$c] = $temp;
}
}
}
return 1;
}
Запускаешь так:
$file="file.txt";
$data = file($file);
foreach ($data as $k => $v) {
$data[$k] = explode(";", $v);
}
array_megasort($data, 0, "asc");
print_r($data);
array_megasort(<массив>, <индекс_по_которому_сортировать>, );
ASC - По - возрастанию
DESC - По - убыванию
Надеюсь разберёшься.
Притензии по работе функции не принимаются. Если тормозит, сам думай как ускорить.
-
стереть, что ли, этот бред?...
чтобы никому больше не пригодился?...
-
Neter Самое непонятное для меня ты и не решил - как брять значение переменой из формы?
-
xax
а я ведь тебе дал четкий ответ.
отдельный пост - как взять переменную из формы.
а ты мне начал плести про всякие основы, чудило
-
RomikChef Ром, такой вопрос, а если тя смогу давать згначения переменной $poisk, через форму, то мой код будет работать?
Или его тоже надо переделывать
(Мой код)
$file="news/news.txt";
$arr=file($file);
foreach ($arr as $k=>$v) {
$arr[$k] = explode(";", $v);
}
if ($arr[$k] === $poisk) { // При условии, что $poisk уже взят из формы поиска
echo $poisk;
}
if ($arr[$k] !== $poisk) {
echo "По вашему запросу ничего не найдено";
}
-
xax
Слушай, откуда ты такого кода набрался?!
Ты вообще знаешь, что такое ===?
А что такое explore?
И что у тебя лежит в $arr[$k] после этого самого эксплоуда?
-
FreeSpace === - полная идентичность
explode - создаёт массив массивов
$arr[$K] - вывод строки в зависимости от значения $k
-
xax
[off]
а implode судя по всему делает строку строк
[/off]
-
ThE0ReTiC Ну или так, вы помогите мне решение найти
-
xax
Госсподиии..... Да сколько можно уже!
Алгоритм с моей точки зрения:
$external_value;
foreach ($file as $stroka) {
$stroka_arr=explode(";",$stroka)
foreach ($stroka_arr as $element) {
if ($element==$external_value):
echo($element." найден в строке из ".$stroka);
endif;
}
}
[off]Но Ромик меня замочит...[/off]
Вышеприведенный код был создан в результате чтения двух примеров из php.net-мануала.
[off]Его можно улучшить. Или ухудшить. Или оптимизировать под твои цели. И выкинуть в помойку. Но это уже твоё дело и твоя проблема, верно?[/off]
-
CGVictor Да спасибо, а не мог бы ты ещё объяснть, что делает кажая строчка?
$external_value; - а это перменная, которая берёт своё значение из формы для поиска?
-
$external_value; // просто показал присутствие внешней переменной. Из формы, откуда угодно...
foreach ($file as $stroka) { // Ты заранее прочитал файл в массив строк функцией file. для каждой строчки в массиве, которая есть $stroka...
$stroka_arr=explode(";",$stroka) // разбиваем строчку в новый массив, ориентируясь по ";"
foreach ($stroka_arr as $element) { // для каждого элемента из строки (которую мы разбили в новый массив)...
if ($element==$external_value): // если элемент равен "внешнему" элементу...
echo($element." найден в строке из ".$stroka); // то написать, что мы его нашли. Или любые действия здесь. Использую переменную $stroka, т.к. мне нужна та строчка в файле, где мы это нашли
endif;
}
}
Как-то так. Обязательно разберись.
-
CGVictor Ага - спасибо
-
CGVictor:
foreach ($stroka_arr as $element) {
if ($element==$external_value):
echo($element." найден в строке из ".$stroka);
endif;
}
эти строки можно было через [p]array_search[/p] написать
-
[off]Макс
Я думаю, что можно было вообще все написать по-другому и не париться.
Просто тот код, который я привел - он ближе к алгоритму такой работы вообще.
[/off]
-
Макс
я тоже думаю, что этому незадачливому нашему программисту надо показывать именно алгоритм.
кирпичи ему показыватьочень вредно.
ему надо научиться писать программы и понять, как они работают
и здесь как раз лучше писать именно используя управляющие структуры, а не готовые функции
-
RomikChef А можно ещё показать алгоритм, как берётся значение переменной из формы
-
господи, да НЕТ НИКАКОГО АЛГОРИТМА, ЧУДИЛО ТЫ ЧУГУННОЕ!
БЕРЕШЬ И ОБРАЩАЕШЬСЯ К НЕЙ, ЧУЧЕЛО СТОЕРОСОВОЕ!!!
Передаем методом GET: script.php?var=value
echo $_GET[\'var\'] напечатает value.
Если получаем данные из формы, отправленной методом POST, то все поля этой формы содержатся в массиве $_POST.
Каким тебе еще языком это написать надо?
Что здесь может быть непонятно?
Какого тебе рожна или алгоритма не хватает?
-
CGVictor
Пишет, что в коде
$file="news/news.txt";//Задаем имя файла
$external_value;
foreach ($file as $stroka) {
$stroka_arr=explode(";", $stroka)
foreach ($stroka_arr as $element) {
if ($element==$external_value):
echo($element." найден в строке из ".$stroka);
endif;
}
}$external_value;
foreach ($file as $stroka) {
$stroka_arr=explode(";",$stroka)
foreach ($stroka_arr as $element) {
if ($element==$external_value):
echo($element." найден в строке из ".$stroka);
endif;
}
}
?>
На 6 срочке ошибка
-
xax бросай это грязное дело - программирование
-
цгвиктор.
а тебя встречу, козла - морду набью.
вот редко я такие вещи говорю.
практически - вообще никогда.
но при случае, да под соответствующее настроение - с каким же удовольствием я это сделаю.
-
У тебя сервер не зависал случайно от такого кода ? :)
(навеяно первой страницей)
-
RomikChef Нет, я понатуре человек упорный, и хочу научится и научусь, только чувствую долго я буду это делать!
Может лучше объясните мне почему на 6 ошибка?
-
xax Так вот он ты какой "интернет-террорист"! Баран тоже по-твоему упорный? Ты не упорный, ты тупой.
-
Neter Знаешь, что я тебе скажу: иди на х... Тупых хочется поискать? Да возможно я и тупой, но ты, бл(я),
тормоз, и считаешь это верхом гениальности..., ты никто, чтобы считать остальных, даже не препод по физре.
А про барана - это не ко мне...
RomikChef Возможно это происходит из - за того, что я не могу придать значения переменной $external_value; ?
-
это происходит из-за того, что ты уже месяц не можешь понят значения нескольких примитивных пхп-команд, которые встречаются у тебя в КАЖДОМ скрипте.
И ты все равно так и не понимаешь, что они делают.
все равно пишешь скрипты, которые в принципе не могут работать - с самой первой строчки.
ты как обезьяна, пытаешься копировать действия человека, не понимая смысла этих действий.
лично я на тебя уже забил.
это абсолютно бесполезная трата времени - тебе что-то объяснять.
ты забываешь на следующий день.
-
за грубые выражения тема закрыта.
Кстати, лично я тоже считаю, что ты тупой.