Так ведь расширит. И сюда выложит для всеобщего обозрения.zerkms
попробуй расширить свой код до например 1000 элементов в искомом массиве
Автор оригинала: zerkms
а мне то чего волноваться? вот человеку да, придётся попотеть![]()
$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 "Массив пуст, заполните его";
}
зачем его вытаскивать, когда он у тебя и так ЕСТЬ? ты его сам получаешь. причем не тогда, когда надо, а вообще все время.не могу только индекс соотв-его элемента вытащить
1) Если твоим способом попытаться найти "Иванов" - не найти. Причём для этого даже скрипт запускать не надо - из кода видно.safrash
не могу только индекс соотв-его элемента вытащить
зачем?Присваиваем пер-ой $element значение ф-ии current - это текущий элемент массива, а $key - ключ текущего элемента.
Ты думаешь, что накопить индексы, по которым в массиве находятся искомые элементы - это сложно? Поверь - это ровно одна строчка.safrash
останавливать цикл не надо, вдруг встретишь еще одно совпадение, надо крутить до конца, просто реализации ее пока нету, буду усложнять и вести дальше.
$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 нету в массиве";
}
Что это такое - перл?
фигня какая-то. Это не вывод, это бессмыслица.1. Для фиксирования работы цикла за его пределы надо выставить счетчик(count).