php for循环里unset的问题

$arr=array('苹果','梨','香蕉','苹果','苹果','苹果');

for ($i=0; $i <= count($arr); $i++) {
if ($arr[$i]=="苹果") {
unset($arr[$i]);
}
}

var_dump($arr);

举这么一个简单例子,我想把所有苹果的元素删除,但不知道为什么..这样写不行,也搜不出不个所以然,来请教下大家

首页 $i <= count($arr)就是错的,你要删除苹果,就应该遍历数组,然后在删除
$arr=array('苹果','梨','香蕉','苹果','苹果','苹果');

foreach ($arr as $key=>$val){

if ($val=="苹果") {
unset($arr[$key]);
}
}
print_r ($arr);

http://www.cnblogs.com/dasn/articles/4106283.html

$arr=array('1','2','3','1','1','1');
$num=count($arr);
for ($i=0; $i<$num; $i++)
{
if ($arr[$i]=="1")
{
unset($arr[$i]);
}

}
print_r($arr);