Внимание новичкам в PHP. Помогу бесплатно.

zerkms

TDD infected
Команда форума
bgm
а мне то чего волноваться? вот человеку да, придётся попотеть ;)
 

safrash

Новичок
Автор оригинала: zerkms
а мне то чего волноваться? вот человеку да, придётся попотеть ;)
PHP:
$my=array('Директор'=>"Иванов",'Бухгалтер'=>"Федоров",'Фирма'=>"Рога",30000);
$find="Федоров";     //значение элемента, которое надо найти
if (reset($my)==true){
  $fl=0;
  $element=current($my);
  $key=key($my);

  for($i=0;$i<=count($my);$i++){
    $element=next($my);
    $key=key($my);
    if($element==$find){
      $fl=1;
    }
  }

  if($fl==1){
    echo "Элемент $find присутствует в массиве";
  }else{
    echo "Элемент $find отсутствует в массиве или пуст";
  }
  reset($my);
}else {
  echo "Массив пуст, заполните его";
}
не могу только индекс соотв-его элемента вытащить:confused:
 

Фанат

oncle terrible
Команда форума
tf
ты сегодня тупишь как прорбка.
не хочешь пойти, отдохнуть денек-другой?

safrash
ну поищи Иванова, горемыка.

-~{}~ 16.04.07 16:35:

не могу только индекс соотв-его элемента вытащить
зачем его вытаскивать, когда он у тебя и так ЕСТЬ? ты его сам получаешь. причем не тогда, когда надо, а вообще все время.
ну раз получил - то и используй потом
 

bgm

&nbsp;
safrash
не могу только индекс соотв-его элемента вытащить
1) Если твоим способом попытаться найти "Иванов" - не найти. Причём для этого даже скрипт запускать не надо - из кода видно.
2) Индекс ты и так каждый раз в цикле получаешь: http://ru2.php.net/manual/ru/function.key.php
3) Кстати, о циклах, у тебя есть лишняя итерация в цикле. Подумай - где, зачем и почему?
 

Фанат

oncle terrible
Команда форума
а по-хорошему, конечно, выбить бы из твоей головы весь этот мусор prev, next, key и иже с ними.

-~{}~ 16.04.07 16:41:

safrash
скажи честно. ты сам этот код писал? Ты можешь объяснить, что в нем делает каждая строчка, и зачем?

Судя по всему - нет.
КАК МОЖНО писать буковки в редакторе, не понимая, что они значат?
 

safrash

Новичок
Фанат
код писал сам.
1. Запускаем ф-ию reset, чтобы указатель элементов массива встал на начало его, если ф-ия воз-ет ложь-значит массив пуст, соотв выводим надпись.
2. Присваиваем пер-ой $element значение ф-ии current - это текущий элемент массива, а $key - ключ текущего элемента.
3.$fl=0 Это флаг для определения истинности проверки совпадения искомой пер-ой с элементами массива.
4. Цикл для запуска next(), key(). при запуске next() возвращает текущий элемент и перемещается на след, key() возвращает ключ этого текущего эл-та. В цикле проверяем рав-во елемента с искомой пере-ой $find и если оно выявится меняем зн-е флага на 1.
5.Если $fl изменится, значит искомый элемент найден.

Вот ключ вывести не смог
:mad:
 

Vallar_ultra

Любитель выпить :)
safrash
клинический случай.

-~{}~ 16.04.07 17:50:

а остановить цикл после того как нашел не додумался????
Хотя ТАКОЙ ПОИСК - это удаление гланд через одно всем известное место... (

-~{}~ 16.04.07 17:51:

у тебя даже переменная есть, которая называется также: "ключ"!
 

safrash

Новичок
Vallar_ultra
останавливать цикл не надо, вдруг встретишь еще одно совпадение, надо крутить до конца, просто реализации ее пока нету, буду усложнять и вести дальше.
 

Фанат

oncle terrible
Команда форума
Vallar_ultra
Объясняю следующему непонятливому.
ЭТО - НЕ ПОИСК. Это изучение АЗОВ ПХП.
Пока - неудачное.
 

bgm

&nbsp;
safrash
останавливать цикл не надо, вдруг встретишь еще одно совпадение, надо крутить до конца, просто реализации ее пока нету, буду усложнять и вести дальше.
Ты думаешь, что накопить индексы, по которым в массиве находятся искомые элементы - это сложно? Поверь - это ровно одна строчка.
 

safrash

Новичок
Фанат

PHP:
$my=array('Директор'=>"Иванов",'Бухгалтер'=>"Федоров",'Фирма'=>"Рога",30000);
reset($my);
$find="Иванов";
$i=0;
while(list($key,$var)=each($my)){
if($var!=$find){
	$i=$i+1;
	}

}

if($i<count($my)){
	  echo "$find имеется в массиве";
	  }
if($i==count($my)){
	  echo "$find нету в массиве";
      }
:)
 

boombick

boombick.org
/me заботливо положил очередной перл в коллекцию..
Буду ребенку показывать как не надо, когда подрастет :)
 

safrash

Новичок
Фанат
Вывод из пройденного материала (переменные, ус.выражения, операторы, циклы):
1. Для фиксирования работы цикла за его пределы надо выставить счетчик(count).

-~{}~ 18.04.07 05:08:

Что это такое - перл?
 

Фанат

oncle terrible
Команда форума
что такое перл, можно посмотреть в словаре русского языка.
в яндексе такой есть.

1. Для фиксирования работы цикла за его пределы надо выставить счетчик(count).
фигня какая-то. Это не вывод, это бессмыслица.
что такое "фиксация работы цикла" и зачем она нужна?
Зачем тебе СЧЁТЧИК? что ты СЧИТАЕШЬ?
чем тебя не устроила, как раньше, просто переменная - 0 или 1?
Где ключ найденного элемента?

Не рановато ли выводы делать? Ты пока тему даже на 10 процентов не осилил
 
Сверху