Tengo un bucle foreach configurado para recorrer mi matriz, verificar si hay un determinado enlace y, si lo encuentra, elimina ese enlace de la matriz.Desarreglando valores de matriz en un bucle foreach
Mi código:
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]);
}
}
Pero no elimina los entires matriz. Probablemente tenga algo que ver con $images[$image]
, ya que esa no es la clave de la entrada de la matriz, ¿solo el contenido? ¿Hay alguna manera de hacer esto sin incorporar un contador?
Gracias.
EDITAR: Gracias chicos, pero ahora tengo otro problema donde las entradas de la matriz realmente no se eliminan.
Mi nuevo código:
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]);
}
}
$ imágenes es actuallty una matriz bidimensional ahora, por tanto, por lo que necesito $ imágenes [1]. Lo he comprobado y funciona con éxito alrededor de los elementos de la matriz, y algunos elementos realmente tienen algunas de esas URL que deseo eliminar, pero no se eliminan. Esta es mi matriz $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
)
)
Gracias!
También sugeriría si (in_array ($ image, array ('http://i27.tinypic.com/29yk345.gif', 'http://img3.abload.de/img/10nx2340fhco.gif', 'http://i42.tinypic.com/9pp2456x.gif')). Lo hace más legible;) –
Como modificó la matriz que está iterando, eso debe reflejarse en su llamada para desarmar: unset ($ images [1] [$ clave]); – bish
Y los paréntesis en la instrucción if son incorrectos, pero supongo que esto solo es un error (de lo contrario recibiría un mensaje de error) –