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

    Problema con array associativo

    Salve a tutti, io dovrei popolare un array associativo dinamicamente, ovvero faccio una query, la quale mi restiuisce per ogni record due campi, il primo sarà il nome della variabile d'array, e il secondo il valore del primo.
    Io ho provato a fare
    [PHP]
    //Qui sopra eseguo la query
    $Settings = array();
    while($row = @mysql_fetch_array($result)){
    array_push($Settings,$row[LABEL] => $row[VALUE]);
    }
    il problema è che mi da errore proprio nell'inserimento dei valori nell'array. Qualcuno mi può aiutare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Codice PHP:
    $settings = array();

    while(
    $row = @mysql_fetch_array($result)){ 
       
    $settings[$row['label']]=$row['VALUE'];

    A me funge

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    46
    $settings = array();

    while ($row = @mysql_fetch_array($result))
    {
    $settings[$row['LABEL']] = $row['VALUE'];
    }

    Non cnosco array_push. Non so se hai fatto compia incolla oppure nel codice ci sono ma mancano gli apici a LABEL e VALUE.

    Ciao
    Yuri

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    E dicono che esistono infinite soluzioni allo stesso problema... tse

  5. #5
    Il $row[] funge anche senza apici, cmq continua a non funzionare, infatti mi da errore
    Parse error: parse error in E:\*****.php on line 71 (quella dell'array_push)

    array_push serve per inserire una variabile dentro ad un array

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    46
    Per riferirsi ad una chiave bisogna mettere gli apici.

    mioArray['ciccio'] funziona, mioArray[ciccio] è un PARSE_ERROR.

    Il 'parse error' è un errore che viene generato PRIMA dell'esecuzione del codice perchè cè un problema di sintassi.

    L'unica eccezione agli apici penso riguardi una costante definita con 'define()'.

    Di più non so dirti.

    Ciao
    Yuri

  7. #7
    [supersaibal]Originariamente inviato da forrestG
    Per riferirsi ad una chiave bisogna mettere gli apici.

    mioArray['ciccio'] funziona, mioArray[ciccio] è un PARSE_ERROR.

    Il 'parse error' è un errore che viene generato PRIMA dell'esecuzione del codice perchè cè un problema di sintassi.

    L'unica eccezione agli apici penso riguardi una costante definita con 'define()'.

    Di più non so dirti.

    Ciao
    Yuri [/supersaibal]
    Questo lo so, infatti a video richiamerei un valore appunto con $Settings['pippo'], ma il problema è proprio la creazione dell'array, mi da l'errore proprio quando devo inserire gli elementi dentro l'array

    edit: se intendi gli apici nel $row che è il risultato del mysql_fetch_array, allora gli apici non li ho mai messi per quello, e anche mettendoli continua a non funzionare.
    Il problema secondo me è diverso

  8. #8
    Aaaah, scusate, avevo letto male sopra, non usando l'array push ora funge tutto, grazie mille

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    46
    Sbagli a utilizzare array_push in questo punto:

    array_push(mioArray, xxxxx => yyyyyyy);

    array_push accoda un elemento all'array, ovvero aggiunge un elementi ad un array non associativo.

    [1]
    [2]
    ...
    [n]

    non puoi aggiungere chiave valore in un botto. Al massimo puoi dargli il valore e lui gli da come indice il valore di lunghezza + 1.

    Comunque anche nel manuale cè una nota:

    Se si utilizza array_push() per aggiungere un elemento all'array, è preferibile piuttosto utilizzare $array[] = poiché in questo modo non c'è il tempo d'attesa per la chiamata di funzione.
    Ciao
    Yuri

  10. #10
    [supersaibal]Originariamente inviato da forrestG
    Sbagli a utilizzare array_push in questo punto:

    array_push(mioArray, xxxxx => yyyyyyy);

    array_push accoda un elemento all'array, ovvero aggiunge un elementi ad un array non associativo.

    [1]
    [2]
    ...
    [n]

    non puoi aggiungere chiave valore in un botto. Al massimo puoi dargli il valore e lui gli da come indice il valore di lunghezza + 1.

    Comunque anche nel manuale cè una nota:



    Ciao
    Yuri [/supersaibal]
    Si infatti, ho letto pure io poco fa, infatti fin'ora l'ho usato per array monodimensionali.
    Grazie mille per il chiarimento

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.