Удалить элемент из массива

Uglik

Старатель
Регистрация
8 Окт 2008
Сообщения
350
Реакции
14
Здравствуйте
Подскажите как правильно удалить элемент из массива
Пример:
PHP:
for ($t = 0; $t < count($linkfile); $t++) {
echo count($linkfile)." = ";
$links = file_get_contents($linkfile[$t]);
echo $t." - <strong>Парсим: </strong> <a href='".$linkfile[$t]."' target='_blank'>".$linkfile[$t]."</a><br>";
$domen = preg_match_all('#<a.*?href=[\'"]?([^\'" >]*)#', $links, $result);
for ($i = 0; $i < count($result[1]);$i++) {
if (strpos($result[1][$i], $sign)){
$a_links = $result[1][$i]."\n";
$all_links = $all_links.$a_links;
}
}
echo $all_links."<br>";
if (count($all_links) == 0){
echo "Не одной ссылки не спаршенно!<br>";
#echo "<span style='color:red;'>Удоляем данную ссылку из списка!</span>";
#unset($linkfile[$t]);
echo "<span style='color:red;'>".$linkfile[$t]."</span>";
}
echo "<br>---------------------------------------------------------------------------------------------<br>";
$f = fopen($tmp, "a");
fwrite($f, $all_links);
fclose($f);
unset($all_links);
flush();
}
По очереди парситься ссылка из файла и если она соответствует условию
PHP:
if (count($all_links) == 0){
echo "Не одной ссылки не спаршенно!<br>";
#echo "<span style='color:red;'>Удоляем данную ссылку из списка!</span>";
#unset($linkfile[$t]);
echo "<span style='color:red;'>".$linkfile[$t]."</span>";
}
ее нужно удлаить....
через unset сбиваеться цикл и не все элементы распаршиваються.
Подскажите как правильно удалить элемент массива не соответсвующий условию
 
через unset сбиваеться цикл и не все элементы распаршиваються.
Подскажите как правильно удалить элемент массива не соответсвующий условию
удаление через unset вполне адекватное, тут дело в построении условии цикла, а все от говнокодинга, нахрена каждый раз пересчитывать размерность массива если это можно сделать ОДИН РАЗ?!
PHP:
for ($i = 0; $i < count($array); $i++)
{
	//...code
}
нужно использовать вот такую конструкцию:
PHP:
for ($i = 0,$cnt=count($array);$i < $cnt;$i++)
{
	//...code
}
 
PHP:
if (count($all_links) == 0){ 
echo "Не одной ссылки не спаршенно!<br>"; 
#echo "<span style='color:red;'>Удоляем данную ссылку из списка!</span>"; 
#unset($linkfile[$t]); 
echo "<span style='color:red;'>".$linkfile[$t]."</span>"; 
}
что там у тебя в условии через count считать? $all_links этоже не массив а текст у тебя получается. попробуй что-то вроде этого
PHP:
<?php
$linkfile=file('file.txt');
$c = count($linkfile);
echo "Старт: всего ссылок - ".count($linkfile)."<br>"; 
for ($t = 0; $t < $c; $t++){ 
$links = file_get_contents($linkfile[$t]); 
echo $t." - <strong>Парсим: </strong> <a href='".$linkfile[$t]."' target='_blank'>".$linkfile[$t]."</a><br>"; 
preg_match_all('#<a.*?href=[\'"]?([^\'" >]*)#', $links, $result); 
$tc=count($result[1]);
for ($i = 0; $i < $tc; $i++) { 
if (strpos($result[1][$i], $sign)){ 
$a_links = $result[1][$i]."\n"; 
$all_links = $all_links.$a_links; 
} 
} 
echo $all_links."<br>"; 
$array_all_links=explode("\n",$all_links);
if (count($array_all_links) == 0){ 
echo "Не одной ссылки не спаршенно!<br>"; 
echo "<span style='color:red;'>Удаляем данную ссылку из списка!</span>"; flush();
unset($linkfile[$t]); 
echo "<span style='color:red;'>".$linkfile[$t]."</span>"; 
} 
unset($all_links); 
echo "<br>---------------------------------------------------------------------------------------------<br>"; flush();
}
$f = fopen('newfile.txt', "w"); 
foreach($linkfile as $value){
fwrite($f,trim($value)."\n");
}
fclose($f);
или так
PHP:
<?php
$linkfile=file('file.txt');
$c = count($linkfile);
echo "Старт: всего ссылок - ".count($linkfile)."<br>"; 
for ($t = 0; $t < $c; $t++){ 
$links = file_get_contents($linkfile[$t]); 
echo $t." - <strong>Парсим: </strong> <a href='".$linkfile[$t]."' target='_blank'>".$linkfile[$t]."</a><br>"; 
preg_match_all('#<a.*?href=[\'"]?([^\'" >]*)#', $links, $result); 
$tc=count($result[1]);
for ($i = 0; $i < $tc; $i++) { 
if (strpos($result[1][$i], $sign)){ 
$a_links = $result[1][$i]."\n"; 
$all_links = $all_links.$a_links; 
} 
} 
if (!$all_links){ 
echo "Не одной ссылки не спаршенно!<br>"; 
echo "<span style='color:red;'>Удаляем данную ссылку из списка!</span>"; flush();
unset($linkfile[$t]); 
echo "<span style='color:red;'>".$linkfile[$t]."</span>"; 
} else {
echo $all_links."<br>";
unset($all_links); 
}
echo "<br>---------------------------------------------------------------------------------------------<br>"; flush();
}
$f = fopen('newfile.txt', "w"); 
foreach($linkfile as $value){
fwrite($f,trim($value)."\n");
} 
fclose($f);
 
Назад
Сверху