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