Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Cercare e aggiornare array multidimensionale

    Salve,

    sto cercando di creare una lista di immagini preferite (tipo carrello) che vengono aggiunte/rimosse in un array che poi viene tenuto in sessione. Eventualmente può essere scritto su un Db...

    Comunque sto incontrando problemi nel cercare l'immagine anche se ho un ID. L'unica soluzione che ho trovato è fare un loop su tutto l'array e utilizzare questa funzione "in_array".

    Prima domanda, esiste un modo per cercare nell'array bidimensionale con "in_array" senza loop? O altra funzione?

    E poi devo rimuovere dall'array bidimensionale l'eventuale immagine che l'utente ha deciso di rimuovere... Ho l'id, ma l'unica soluzione che ho trovato è "distruggere" la vecchia sessione e ricrearne una nuova con i nuovi valori, esiste un modo migliore?

    Grazie :berto:

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dovresti postare la struttura dell'array per capire cosa contengano le sue dimensioni... comunque sarebbe comodo se puoi utilizzare come chiave della prima dimensione l'id dell'immagine, in questo caso puoi fare un accesso diretto senza loop

    per la questione della sessione dipende da cosa memorizzi e perchè... non occorre necessariamente "ricreare" la sessione se fai come ho detto sopra

  3. #3
    Allora io creo un array con le variabili così:
    Codice PHP:
    $image_array[0]        = array(image_id => $_REQUEST['image_id'],image_artist => $_REQUEST['image_artist'],image_title => $_REQUEST['image_title'],image_album => $_REQUEST['image_album'],image_status => $_REQUEST['image_status']); 
    ed ho provato anche a farlo così:
    Codice PHP:
    $image_array["$_REQUEST['image_id']"]        = array(image_artist => $_REQUEST['image_artist'],image_title => $_REQUEST['image_title'],image_album => $_REQUEST['image_album'],image_status => $_REQUEST['image_status']); 
    poi per appendere alle sessione i nuovi ho fatto cosi:

    Codice PHP:
    if(!isset($_SESSION['SESS_IMAGE_LIST'])){                             $_SESSION['SESS_IMAGE_LIST'] = $track_array;                         }else{                             $_SESSION['SESS_IMAGE_LIST'] = array_merge($image_array$_SESSION['SESS_IMAGE_LIST']);                             }; 
    Però poi mi perdo nel cercare e nel rimuovere gli array!!

    Nel secondo caso (quello con l'id come dimensione) come posso fare per cercare e rimuovere l'array incriminato?

    Grazie...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    se - come penso - l'image_id è univoco ti conviene creare $image_array come:

    Codice PHP:
    $image_array[$image_id] = array( ...altri campi come prima...); 
    se è un valore numerico - come plausibile - va bene la tua seconda scrittura togliendo pure i doppi apici



    Per eliminare uno degli elementi farai allora
    Codice PHP:
    unset ($image_array[$image_id]); 


    Per impostare la variabile di sessione se devi passare l'intero vettore fai semplicemente:
    Codice PHP:
    $_SESSION['SESS_IMAGE_LIST'] = $image_array
    in questo modo la var. di sessione riproduce l'intero vettore.


    ----------
    nota: sarebbe meglio comunque analizzare le variabili $_REQUEST senza passarle direttamente nelle funzioni e verificare che contengano valori corretti, p.es.:

    Codice PHP:
    $image_id = ((isset($_REQUEST['image_id'])?(intval($_REQUEST['image_id'])):(0)); 

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.