Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    [php] problema con array multidimensionale

    ho fatto un carrello con le sessioni in cui
    inserisco così i dati degli intestatari di una
    carta servizi:
    codice:
    $_SESSION['cart'][$key]['nome']=$nome;
    $_SESSION['cart'][$key]['cognome']=$cognome;
    $_SESSION['cart'][$key]['data_nascita']=$data;
    e ottengo l'array $_SESSION['cart']
    codice:
    Array
    (
        [1] => Array
            (
                [nome] => Nome1
                [cognome] => Cognome1
                [data_nascita] => 1/1/1971
            )
    
        [2] => Array
            (
                [nome] => Nome2
                [cognome] => Cognome2
                [data_nascita] => 2/2/1972
            )
    
    )
    Purtroppo quando aggiungo altre card mi sovrascrive
    quelle già inserite in quanto $key viene preso da un foreach
    fatto dal precedente array che serve per l'inserimento dati che
    vengono poi copiati nell'array del carrello.

    cosa dovrei mettere al posto di [$key] affinchè i dati di ogni card
    vengano aggiunti e non sovrascritti?
    Errare humanum est, perseverare ovest

  2. #2
    conta gli elementi che gia' esistono.

    codice:
    $count = count($_SESSION['cart']);
    
    foreach ( .......
    {  
    $_SESSION['cart'][$count]['nome']= 'Pirla';
    $_SESSION['cart'][$count]['cognome'] = 'Pirlotto';
    $_SESSION['cart'][$count]['data_nascita'] = '16/12/1969'; 
    
    $count++ ;
    }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    purtroppo questo non può andare in quanto dal carrello l'utente ha anche la possibilità di rimuovere delle card.

    Avendo le card 1 2 3 4

    se rimuovo la nr.1 rimarranno 2 3 4

    count vede 3 elementi, ne aggiungi uno e quindi sovrascrivi il 4
    Errare humanum est, perseverare ovest

  4. #4
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    ho risolto così:
    codice:
    $nuova_card['nome']=$nome;
    $nuova_card['cognome']=$cognome;
    $nuova_card['data']=$data;
    
    array_push($_SESSION['cart'], $nuova_card);
    Errare humanum est, perseverare ovest

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.