2011-07-24 4 views
0

Je dois supprimer d'un tableau multidimensionnel.Suppression d'un tableau multidimensionnel

Mon tableau se présente comme suit

Array(
    0 => Array(
     0 => "My Album", 
     1 => "Testphoto2011-222231.jpg" 
    ), 
    1 => Array(
     0 => "Test Album", 
     1 => "12345.jpg" 
    ) 
); 

Ce que je veux faire est de rechercher la valeur "My Album" puis supprimez tout le réseau à partir du tableau. Par exemple, les valeurs "My Album" & "Testphoto2011-222231.jpg" appartiennent par exemple à array[0]. Une fois trouvé, je veux supprimer array[0].

Quelqu'un peut-il m'aider à ce sujet?

Répondre

0

unset($array[0]) va supprimer cette entrée de la matrice.

1
<?php 
$ar = Array(
    Array(
     "My Album", 
     "Testphoto2011-222231.jpg" 
    ), 
    Array(
     "Test Album", 
     "12345.jpg" 
    ) 
); 

// Not using foreach, or ascending counting, because 
// element removal will screw that up. 
for ($i = count($ar) - 1; $i >= 0; $i--) { 
    if ($ar[$i][0] == "My Album") 
     unset($ar[$i]); 
} 

$ar = array_values($ar); // re-index 

var_export($ar); 

/* Output: 
array (
    0 => 
    array (
    0 => 'Test Album', 
    1 => '12345.jpg', 
), 
) 
*/ 
?> 

Live demo.

+0

grâce Brilliant, j'ai juste une question, mon tableau est dans une session, je le code ($ i = count ($ _ SESSION [ 'album']) - 1 ; $ i> = 0; $ i--) { if ($ _SESSION ['albums'] [$ i] [0] == $ album) unset ($ _ SESSION ['albums'] [$ i]) ; } $ _SESSION ['albums'] = array_values ​​($ _ SESSION ['albums']); // réindexer var_export ($ _ SESSION ['albums']); est-ce vrai? Pour le moment, il ne met pas à jour le tableau de session. – Wayne

+0

@Wayne: Veuillez utiliser des guillemets pour formater le code. Et oui, cela semble juste. –

Questions connexes