Поиск в массиве с удалением найденных элементов

Денч

Новичок
Поиск в массиве с удалением найденных элементов

Необходимо произвести поиск в массиве с выводом результирующего массива, из которого удалены найденные элементы. За один раз возможен поиск 2-х и более элементов. Пытаюсь делать вот так:
PHP:
 for(Reset($cats);list($f_name,$category,)=each($cats);)
 {
 	$cat_list=file("../notes/lnk/links_$category.link");
	for(Reset($cat_list);list($i,$head)=each($cat_list);)
	{
		if(strstr($head, $f_name))
		{
			unset($cat_list[$i]);
		} 
	} 
 }
implode("",$cat_list);
Пример массива ($i=>$head):
0=>49_1631;первая
1=>49_1632;вторая
2=>49_1633;третья
3=>49_1859;четвертая

При попытке удалить 2 и более элемента не пашет.
Понимаю, что алгоритм ошибочен, но не могу никак сделать правильно...
 

Фанат

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

Денч

Новичок
PHP:
 foreach($cats as $f_name=>$category)
 {
 	$cat_list=file("../notes/lnk/links_$category.link");

	foreach($cat_list as $i=>$head)
	{
		if(strstr($head,$f_name))
		{
			unset($cat_list[$i]);
		} 
	} 
 }
$f=fopen("../notes/lnk/links_$category.link","w");
fputs($f,implode("",$cat_list));
fclose($f);
Вот что пытаюсь здесь сделать:
1. Разбираю массив $cats
2. Выделяю из него $category и с помощью него формирую имя файла: "../notes/lnk/links_$category.link"
3. Считываю содержимое файла в массив $cat_list
4. выделяю $i и $head. В нем буду искать строку $f_name.
5. пытаюсь найти строку $f_name в переменной $head
6. Если нашлась, обнуляю текущий элемент
7. Затем записываю полученный массив в тот же файл.

поиск у тебя не в массиве, а в файлах
Поиск все таки в массиве производится. Файл только хранит его...
 

Фанат

oncle terrible
Команда форума
почему у тебя запись в файл вынесена из уикла?
 

Денч

Новичок
Сформировав массив, записываю в файл.
Не дергать же его каждую итерацию...

-~{}~ 19.02.05 22:26:

Олух царя небесного!!! А я зациклился на том, что некрасиво дергать файл каждую итерацию!
Но ведь неправильно же так? Так да, без проблем...
 

Фанат

oncle terrible
Команда форума
интересно.
читаешь ты каждую итерацию, а пишешь значит - только один раз.
новое слово в программировании.
 

Денч

Новичок
Мдя... Свежий взгляд со стороны всегда выявляет промахи..
Спасибо. Постараюсь быть внимательней:)
 
Сверху