webForumDet fria alternativet

Återuppbygga matris

1 svar · 236 visningar · startad av Skarre

SkarreMedlem sedan apr. 20012 427 inlägg
#1

Jag lagrar information om produkter i en matris i en sessionsvariabel, och när jag raderar produkten som har index 0 i matrisen pajar hela skriptet eftersom jag använder en for-loop ( $i = 0; $ < count($foo) ... o.s.v. ). Finns det något sätt att återuppbygga denna matris så att alla index placeras i nummerföljd igen och "hålen" fylls igen?

EDIT: Jag kanske ska tillägga att jag undrar om det finns en färdig funktion för detta. Jag kan inte hitta någon i dokumentationen, men jag kanske är kass på att leta. :)

SPiNMedlem sedan mars 20007 896 inlägg
#2

Jag tror inte att det finns någon färdig, men kanske något sånt här skulle kunna fungera:

function removeItem( &$myarray, $myindex ) {
     if( $myindex < count( $myarray ) ) {
        $item = $myarray[ $myindex ];
     
        if( $myindex == ( count( $myarray ) - 1 ) )
             array_pop( $myarray );
        else
             $myarray[ $myindex ] = array_pop( $myarray );

        return $item;
     } else {
        return FALSE;
     }
}
128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)