PDA

View Full Version : [PHP] Eliminare una entry da array multidimensionale


Alhazred
28-01-2010, 14:34
Ho un array fatto cosė

$libri = array(
array(Titolo => "Il fu Mattia Pascal", Autore => "Pirandello"),
array(Titolo => "Il principe", Autore => "Machiavelli"),
array(Titolo => "I promessi sposi", Autore => "Manzoni"),
array(Titolo => "Piccolo mondo antico", Autore => "Fogazzaro"),
array(Titolo => "I Malavoglia", Autore => "Verga"),
);

Come faccio, dato un titolo, a cancellare la relativa entry?

Ad esempio se avessi come input "Il principe", l'array risultante dovrebbe essere

$libri = array(
array(Titolo => "Il fu Mattia Pascal", Autore => "Pirandello"),
array(Titolo => "I promessi sposi", Autore => "Manzoni"),
array(Titolo => "Piccolo mondo antico", Autore => "Fogazzaro"),
array(Titolo => "I Malavoglia", Autore => "Verga"),
);

RagingBull
28-01-2010, 15:02
Semplice....ti ho commentato il codice grossolanamente ma si capisce:

<?php

$libri = array(
array(Titolo => "Il fu Mattia Pascal", Autore => "Pirandello"),
array(Titolo => "Il principe", Autore => "Machiavelli"),
array(Titolo => "I promessi sposi", Autore => "Manzoni"),
array(Titolo => "Piccolo mondo antico", Autore => "Fogazzaro"),
array(Titolo => "I Malavoglia", Autore => "Verga"),
); // IL TUO ARRAY

foreach($libri as $key => $value)
{
echo $key." -> ".$value['Titolo']." - ".$value['Autore']."<br>\n";
}

foreach($libri as $key => $value)
{
if($value['Titolo']=="Il principe" && $value['Autore']=="Machiavelli") // AL POSTO DELLE STRINGE PUOI IMPOSTARE DELLE VARIABILI
{
unset($libri[$key]); // UNSET SVUOTA IL CAMPO DELL'ARRAY PRINCIPALE LASCIANDO L'INDICE SBALLATO COME PUOI VEDERE DALL'OUTPUT
}
}

echo "<br><br>\n";

foreach($libri as $key => $value)
{
echo $key." -> ".$value['Titolo']." - ".$value['Autore']."<br>\n";
}

$libri = array_values($libri); // IL SEGUENTE METODO REINDICIZZA L'ARRAY

echo "<br><br>\n";

foreach($libri as $key => $value)
{
echo $key." -> ".$value['Titolo']." - ".$value['Autore']."<br>\n";
}

?>


[EDIT] - Ti avevo messo il controllo su titolo e autore ti basta cancellare l'AND nell'if ;-)

Alhazred
28-01-2010, 15:19
Grazie mille, sei stato chiarissimo :)

RagingBull
28-01-2010, 15:24
Figurati