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

    Prendere solo l'array associativo

    ciao!

    sto iterando su un record set, e devo prendere sia il nome del "campo" che il suo valore.
    ho fatto così:
    Codice PHP:
        foreach ($query as $val) {
            foreach (
    $val as $k => $v) {
                echo 
    $k ':' $v '<br>';
    //            array_push($res, array(
    //                strtoupper($k) => $v
    //            ));
            
    }
        } 

    il problema è che i record mi vengono stampati doppi, sia con la chiave associative che numerica:
    codice:
    modello:C180-004
    0:C180-004
    colore:0587
    1:0587
    .......

    come posso prendere solo i record associativi??

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Il problema ce l'hai quando fai il fetch dal database a monte di questo codice, mi spiego meglio.

    Non so cosa tu stia usando per accedere al db, diciamo pdo. Quando fai il fetch del tuo result set devi impostare il "fetch style" tramite un parametro, se non lo fai pdo di default usa PDO::FETCH_BOTH che di fatto ti da il risultato "doppio". Ovvero nel tuo risultato avrai per ogni set 1 array con indici numerici e 1 associativo, con dentro ovviamente gli stessi dati.

    Per ovviare al problema ed avere solo un array associativo dovrai passare alla funzione fetch() il parametro: PDO::FETCH_ASSOC

    Così avrai record singoli e in formato associativo. Anche se non usi pdo il problema è lo stesso, cambiano i nomi delle funzioni ma per risolvere basta che forzi il fetch del record come array associativo e hai risolto.

  3. #3
    ciao!

    sto usando PDO, con la funzione fecthAll.

    ho modificato così e funziona:
    codice:
    $prepare->fetchAll(PDO::FETCH_ASSOC);

    grazie!

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.