Forum Webscript.Ru

Программирование => PHP => Тема начата: xax от 28 Февраля 2004, 00:56:04

Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 00:56:04
Как делается поиск нужного слова по массиву, причём поиск не повсему массиву, атолько по одному из столбцов
Если массив
a;s;d
d;f;g
g;f;g

И если мы в поиске напишем слово d и поиск будет осуществляться только по первому столбцу, то вывсти должно d
Как это сделать?
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 01:16:03
в массивах нет столбцов
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 01:16:54
RomikChef Ну, блин, ты хочешь сказать, что ты не понял что мне надо?
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 01:22:04
я хочу сказать, что пока ты не научишься понимать, что тебе надо, ты так и будешь бегать на форум за каждым чихом.

а если научишься понимать, то сам научишься и задачи свои решать
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 01:23:47
основной способ работы с массивом - перебор в цикле.
вот и перебирай
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 01:24:49
RomikChef А можешь привести элементарный пример?
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 01:30:12
у тебя этих примеров - ... жри.
ВО ВСЕХ твоих темах только и делается, ч то перебираются массивы.
и обрабатываются строки с разделителями, лежащие в них.
тампримеров  - миллион
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 01:33:10
RomikChef Я просто не знаю, как сделать так, чтобы из формы бралось значение и потом оно сравнивалось с о значениями из массива массивов
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 01:39:47
перебирай массив в цикле и сравнивай каждый элемент с тем ,что пришло из формы.
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 01:42:45
как получать данные из формы - http://faq.phpclub.net/globals
еще вопросы есть?
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 18:19:22
RomikChef Да - море, в этой статье нет основ, а мне нужны именно они
Название: Поиск по массиву
Отправлено: Neter от 28 Февраля 2004, 18:29:54
xax Купи книжку и прочитай.
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 28 Февраля 2004, 18:47:40
слушай, ты определись.
Ты хотел примеров?
Я тебе сказал, где взять примеры.
теперь тебе основы нужны.
Скажу, где взять основы - ты еще что-нибудь захочешь.
Может, хватит уже.


Бля, ребята, а ведь участь пхп форумов незавидна.
Тенденция видна очень четко.
Ксандер ушел именно из-за этого.
Информации в инете НАСТОЛЬКО уже много по пхп, что на форумы приходят только дундуки типа этого хаха.
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 18:48:12
Neter Да есть у меня 2, туфта, ещё ни одна книжка по компам меня ничему не научила, значитльно удобнее почитать маленькую статью и попробовать амому так сделать, а читать книжку и сидеть за компом - не по мне
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 20:09:12
  $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 строчке,
а вообще это верно?
Название: Поиск по массиву
Отправлено: Neter от 28 Февраля 2004, 20:43:05
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 "По вашему запросу ничего не найдено";
}


Ты сам понял что ты написал?
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 20:56:08
Neter
Да
Там сравниваются $arr[$k] и $poiskи в зависимости от того, какие они, то и выводится
Название: Поиск по массиву
Отправлено: it4all от 28 Февраля 2004, 21:04:37
xax хоть у тебя и написано,что ты фанат форума,но хоть капля достоинтсва должна быть у человека ?
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 21:11:47
it4all
Я пробую...
Лучше помоги
Название: Поиск по массиву
Отправлено: it4all от 28 Февраля 2004, 21:15:07
xax Ты пробуешь мазохистствовать.Здесь я тебе не помошник.Я тебе слал на мыло ,что делать.
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 21:17:25
it4all Можешь писать тут, я думаю, что Ромик не разозлится
Название: Поиск по массиву
Отправлено: it4all от 28 Февраля 2004, 21:23:48
Цитировать
xax:
it4all Можешь писать тут, я думаю, что Ромик не разозлится

Ну ты меня повеселил этим сообщением.Ромик последнее время не злится,он уже устал это делать (скорее всего его добил алексей за номером 85),он просто и тихо перекрывает "кислород",как было с тобой,если помнишь.А реально помочь тебе можно было бы еслиб ты не стесняясь описал детально,что ты хочешь делать.Глядишь и впоцессе описания и сам бы догнался (я тут гдето такое встречал).
Название: Поиск по массиву
Отправлено: xax от 28 Февраля 2004, 21:28:33
it4all Я хочу, чтобы переменная, которой придали значения из формы поиска, сравнивалась с массивом массивов
тоесть
если массив
a;d;f
s;f;g
g;h;j
То массив массивов, который мне нужен - это второй столбик данного массива
Теперь мне надо, чтобы значение переменной из формы сравнивалось со всеми строчками массива массивов, и если где - то их значения совпадут, чтобы выводилось это слово, а если не нашлось совпадающих, то выводилось, что, типа, такой игры в нашей базе нету
Так вот я вродже это сделал, только без переменной из формы
Название: Поиск по массиву
Отправлено: it4all от 28 Февраля 2004, 22:17:36
Я Ромику клялся здоровьем близкого мне человека (дяди Билли),что не буду влазить в чужие темы с помошью.
Но ради тебя  xax ,я рискну.
Еслиб ты прогулялся по другим темам,то заметил бы что,в основном более-менее помогают тем,кто просто спрашивает "Помогите сделать то-то и то-то", а не просит помощи в реализации заведомо неправельного способа поиска.
Чтоб тебе не спросить народ следующим образом -
Помогите сделать поиск по ключевому слову,где вместо базы использую текстовый файл,в котором данные расположены следующим образом (к примеру) - "номер игры ; название ; описание".
У меня есть такие  мысли по этому поводу "Тра ля ля ля".

А то - переменная из формы,второй столбик,массив массивов.
И темболее если ты вродже сделал,то чего,переменную из формы не можешь подццепить?
Название: Поиск по массиву
Отправлено: xax от 29 Февраля 2004, 00:04:31
it4all
Нет не могу
Название: Поиск по массиву
Отправлено: Neter от 29 Февраля 2004, 00:40:13
Так, не ругайте меня, больше не буду. :(
Может ещё кому эта параша пригодится. :)

хах Вот, держи, спиногрыз:

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 - По - убыванию

Надеюсь разберёшься.

Притензии по работе функции не принимаются. Если тормозит, сам думай как ускорить.
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 29 Февраля 2004, 11:57:51
стереть, что ли, этот бред?...
чтобы никому больше не пригодился?...
Название: Поиск по массиву
Отправлено: xax от 29 Февраля 2004, 14:02:11
Neter Самое непонятное для меня ты и не решил - как брять значение переменой из формы?
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 29 Февраля 2004, 14:14:19
xax
а я ведь тебе дал четкий ответ.
отдельный пост - как взять переменную из формы.
а ты мне начал плести про всякие основы, чудило
Название: Поиск по массиву
Отправлено: xax от 01 Марта 2004, 01:12:46
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 "По вашему запросу ничего не найдено";
}
Название: Поиск по массиву
Отправлено: FreeSpace от 01 Марта 2004, 02:45:46
xax
Слушай, откуда ты такого кода набрался?!
Ты вообще знаешь, что такое ===?
А что такое explore?
И что у тебя лежит в $arr[$k] после этого самого эксплоуда?
Название: Поиск по массиву
Отправлено: xax от 01 Марта 2004, 15:12:37
FreeSpace === - полная идентичность
explode - создаёт массив массивов
$arr[$K] - вывод строки в зависимости от значения $k
Название: Поиск по массиву
Отправлено: ThE0ReTiC от 01 Марта 2004, 16:21:54
xax
[off]
а implode судя по всему делает строку строк
[/off]
Название: Поиск по массиву
Отправлено: xax от 01 Марта 2004, 19:56:10
ThE0ReTiC Ну или так, вы помогите мне решение найти
Название: Поиск по массиву
Отправлено: CGVictor от 01 Марта 2004, 20:18:51
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]
Название: Поиск по массиву
Отправлено: xax от 01 Марта 2004, 23:51:12
CGVictor Да спасибо, а не мог бы ты ещё объяснть, что делает кажая строчка?
$external_value; -  а это перменная, которая берёт своё значение из формы для поиска?
Название: Поиск по массиву
Отправлено: CGVictor от 02 Марта 2004, 14:41:40

$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;
  }
}

Как-то так. Обязательно разберись.
Название: Поиск по массиву
Отправлено: xax от 02 Марта 2004, 19:25:52
CGVictor Ага - спасибо
Название: Поиск по массиву
Отправлено: Макс от 02 Марта 2004, 22:01:45
Цитировать
CGVictor:
foreach ($stroka_arr as $element) {
    if ($element==$external_value):
    echo($element." найден в строке из ".$stroka);
    endif;
  }

эти строки можно было через [p]array_search[/p] написать
Название: Поиск по массиву
Отправлено: CGVictor от 03 Марта 2004, 13:17:43
[off]Макс
Я думаю, что можно было вообще все написать по-другому и не париться.
Просто тот код, который я привел - он ближе к алгоритму такой работы вообще.
[/off]
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 03 Марта 2004, 13:30:48
Макс
я тоже думаю, что этому незадачливому нашему программисту надо показывать именно алгоритм.
кирпичи ему показыватьочень вредно.
ему надо научиться писать программы и понять, как они работают
и здесь как раз лучше писать именно используя управляющие структуры, а не готовые функции
Название: Поиск по массиву
Отправлено: xax от 04 Марта 2004, 21:51:41
RomikChef А можно ещё показать алгоритм, как берётся значение переменной из формы
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 05 Марта 2004, 02:19:58
господи, да НЕТ НИКАКОГО АЛГОРИТМА, ЧУДИЛО ТЫ ЧУГУННОЕ!
БЕРЕШЬ И ОБРАЩАЕШЬСЯ К НЕЙ, ЧУЧЕЛО СТОЕРОСОВОЕ!!!
Цитировать

Передаем методом GET: script.php?var=value
echo $_GET[\'var\'] напечатает value.
Если получаем данные из формы, отправленной методом POST, то все поля этой формы содержатся в массиве $_POST.

Каким тебе еще языком это написать надо?
Что здесь может быть непонятно?
Какого тебе рожна или алгоритма не хватает?
Название: Поиск по массиву
Отправлено: xax от 07 Марта 2004, 02:58:56
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 срочке ошибка
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 07 Марта 2004, 03:38:32
xax бросай это грязное дело - программирование
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 07 Марта 2004, 03:40:21
цгвиктор.
а тебя встречу, козла - морду набью.
вот редко я такие вещи говорю.
практически - вообще никогда.
но при случае, да под соответствующее настроение - с каким же удовольствием я это сделаю.
Название: Поиск по массиву
Отправлено: MHS от 08 Марта 2004, 03:24:15
У тебя сервер не зависал случайно от такого кода ? :)
(навеяно первой страницей)
Название: Поиск по массиву
Отправлено: xax от 08 Марта 2004, 13:02:45
RomikChef Нет, я понатуре человек упорный, и хочу научится и научусь, только чувствую долго я буду это делать!
Может лучше объясните мне почему на 6 ошибка?
Название: Поиск по массиву
Отправлено: Neter от 08 Марта 2004, 13:36:30
xax Так вот он ты какой "интернет-террорист"! Баран тоже по-твоему упорный? Ты не упорный, ты тупой.
Название: Поиск по массиву
Отправлено: xax от 08 Марта 2004, 21:29:07
Neter Знаешь, что я тебе скажу: иди на х... Тупых хочется поискать? Да возможно я и тупой, но ты, бл(я),
тормоз, и считаешь это верхом гениальности..., ты никто, чтобы считать остальных, даже не препод по физре.
А про барана - это не ко мне...

RomikChef Возможно это происходит из - за того, что я не могу придать значения переменной $external_value; ?
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 08 Марта 2004, 23:36:47
это происходит из-за того, что ты уже месяц не можешь понят значения нескольких примитивных пхп-команд, которые встречаются у тебя в КАЖДОМ скрипте.
И ты все равно так и не понимаешь, что они делают.
все равно пишешь скрипты, которые в принципе не могут работать - с самой первой строчки.
ты как обезьяна, пытаешься копировать действия человека, не понимая смысла этих действий.

лично я на тебя уже забил.
это абсолютно бесполезная трата времени - тебе что-то объяснять.
ты забываешь на следующий день.
Название: Поиск по массиву
Отправлено: Меняздесьдавнонет от 08 Марта 2004, 23:37:56
за грубые выражения тема закрыта.
Кстати, лично я тоже считаю, что ты тупой.