2014-10-03 3 views
1

Почему не удаляется удаление index.php из результатов, которые я получаю?Почему не удаляется удаление index.php из его

$files = array(
    '0' => 'bob.php', 
    '1' => 'index.php', 
    '2' => 'fred.php' 
); 
foreach ($files as $key => &$file) { 
    if(in_array($file, array('index.php'))) { 
     echo 'test condition<br />'; // Yes, this condition is met 
     unset($files[$key]); 
    } 
    echo '<a href="'.$file.'">'.$file.'</a><br />'."\n"; 
} 

Чтобы сделать это, я на самом деле последовали ответы на this stackoverflow question.

+0

Вы просто удаление записи из '$ файлов 'массив. Это не отменяет локальную строку '$ file' ** и не пропускает ** последующее' echo'. – mario

+0

Очевидно, что отмена индекса массива не влияет на ссылочную переменную. Вы должны назначить что-то индексу массива для изменения ссылки. – Barmar

+0

Что вы ожидаете от эха после удаления элемента? – Barmar

ответ

0

С $file уже установлен в index.php он по-прежнему эхо. Ключ в-самом деле снята с охраны, хотя, и вы можете исправить код, используя continue в цикле:

<?php 

$files = array("home.php","index.php","example.php"); 
    foreach ($files as $key => &$file) { 
     if(in_array($file, array('index.php'))) { 
      unset($files[$key]); 
      continue; 
     } 
     echo '<a href="'.$file.'">'.$file.'</a><br />'."\n"; 
    } 
?> 

Результат:

<a href="home.php">home.php</a><br /> 
<a href="example.php">example.php</a><br /> 
Смежные вопросы