I have written a simple program to understand the effect of deleting an array element inside a foreach loop on that loop.I have noticed that even if i deleted the element 4 ,it still gets printed .Why is that so ?
code :
$arr2 = array(1,2,3,4,5);
foreach($arr2 as $elem)
{
    echo '<br>val : '.$elem;
    $index=array_search(4,$arr2); // search for 4 in array
    if($index != false)
    {
       echo ' index :'.$index.' ';
       unset($arr2[$index]); // delete 4 from array 
    }
}
output :
val : 1 index :3 
val : 2 
val : 3 
val : 4  // 4 gets printed !!
val : 5 
 
     
    
val : 1 index :3
val : 2
val : 3
val : 5`?? – LF00 Jun 12 '17 at 07:09