这个问题在这里已有答案:
如何在foreach循环中删除数组元素? 8个答案
我设置了一个foreach循环来遍历我的数组,检查某个链接,如果找到,则将其从数组中删除。
我的代码:
foreach($images as $image)
{
if($image == 'http://i27.tinypic.com/29yk345.gif' ||
$image == 'http://img3.abload.de/img/10nx2340fhco.gif' ||
$image == 'http://i42.tinypic.com/9pp2456x.gif')
{
unset($images[$image]);
}
}
但是它不会删除整个数组。 这可能与$images有关,因为这不是数组条目的键,而是内容? 有没有办法在没有柜台的情况下做到这一点?
谢谢。
编辑:谢谢大家,但是现在我还有另一个问题,其中数组条目实际上并没有被删除。
我的新代码:
foreach($images[1] as $key => $image)
{
if($image == 'http://i27.tinypic.com/29yk345.gif')
$image == 'http://img3.abload.de/img/10nx2340fhco.gif' ||
$image == 'http://i42.tinypic.com/9pp2456x.gif')
{
unset($images[$key]);
}
}
$ images实际上是二维数组,因此为什么我需要$ images [1]。 我检查了一下,它成功地绕过了数组元素,实际上某些元素确实包含我希望删除的某些URL,但是并没有被删除。 这是我的$images数组:
Array
(
[0] => Array
(
[0] => useless
[1] => useless
[2] => useless
[3] => useless
[4] => useless
)
[1] => Array
(
[0] => http://i27.tinypic.com/29yk345.gif
[1] => http://img3.abload.de/img/10nx2340fhco.gif
[2] => http://img3.abload.de/img/10nx2340fhco.gif
[3] => http://i42.tinypic.com/9pp2456x.gif
)
)
谢谢!