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

    array bidimensionale cercare valore e stampa

    ciao a tutti
    Ho un array bidimensionale creato da una SQL

    while($rowtext = mysql_fetch_array($sqltext)){

    $textcampo[] = array($rowtext['rif'], $rowtext['testo']);

    }



    codice:
    Array
    (
        [0] => Array
            (
                [0] => privacy
                [1] => testo privacy
            )
    
        [1] => Array
            (
                [0] => intro
                [1] => testo intro
            )
    
    )
    ora vorrei poter stampare il valore non facendo echo $array[0][1];

    Ma facendo una cosa tipo
    echo $array[0]['privacy'][1];
    echo $array[0]['intro'][1];

    ho sbagliato tipo di array per quel che devo fare?

  2. #2
    foreach ( $textcampo as $row ) {
    foreach ( $row as $key => $value ) {
    echo $key," ",$value,"
    ";
    }
    }

    intendevi questo?

    cmq non capisco perchè estrai i valori da mysql, li inserisci in un array e poi devi stampare l'array. Non fai prima a stampare direttamente quando cicli la query da mysql?

  3. #3
    Ratatuia

    grazie della risposta ci siamo quasi

    Mi serve questo tipo di funzione per rendere dinamici dei testi a seconda della pagina che viene richiamata, io o una tabella dove vengono inseriti i testi per X sezioni, la tabella è composta dai seguenti campi

    id - testo - tipocampo

    Es:
    --------------------------------------
    2 - testo testo - privacy
    3 - testo testo - intro
    --------------------------------------

    la query esegue la select solo sui record che interessano la pagina e da li io pensavo di ciclare creando appunto 1 array bidimensionale per poi poter stampare i testi nella pagina come se fossero variabili da distribuire all'interno del html

    basandomi su questo esempio

    codice:
    <?php
    $arr = array("foo" => "bar", 12 => true);
    
    echo $arr["foo"]; // bar
    echo $arr[12];    // 1
    ?>
    
    
    dove per stampare il valore di FOO è possibile fare $arr['foo'] <-- è questo che mi interessa

  4. #4
    facendo un cliclo di questo genere
    codice:
    while($rowtext = mysql_fetch_array($sqltext)){
    
    $arr = array($rowtext['rif'] => $rowtext['testo']);
    }
    effettivamente fa quel che chiedo ovvero stampa con la chiave
    echo $arr["intro"];

    solo che ovviamente stampa solo l'ultimo record del ciclo...come faccio a incrementare l'array durante il ciclo?

  5. #5
    si, essendo un array associativo a chiave non numerica usi puoi fare $array['foo'] (ovviamente se prima non avevi impostato nulla per quella chiave ti becchi un errore da php)

    ritorno a suggerire cmq di non stare a riempire un array e poi stampare il suo contenuto, ma di farlo direttamente mentre si cicla sulla query...

  6. #6
    Grazie per il suggerimento Ratatuia
    Il mio era cmq un problema strutturale non potevo e non posso stampare durante il ciclo per motivi strutturali...considera come se io stessi facendo una sorta di configuratore di testi per X piattaforme per cui un sacco di cose e in posti diversi oltre che per ogni pagina variabili totalmente diverse

    cma ho risolto ottenendo precisamente quel che volevo utilizzando 2 array e poi utilizzando la funzione array_combine dove il primo diventa la chiave del secondo e così facendo posso richiamare i testi giusti nel corpo della pagina indicando semplicemente la chiave (era quel che mi interessava fare

    codice:
    $arra[] = $rowtext['rif'];
    $arrb[] = $rowtext['testo'];
    $myplatformtext = array_combine($arra, $arrb);

  7. #7
    Originariamente inviato da -AA-
    Grazie per il suggerimento Ratatuia
    Il mio era cmq un problema strutturale non potevo e non posso stampare durante il ciclo per motivi strutturali...considera come se io stessi facendo una sorta di configuratore di testi per X piattaforme per cui un sacco di cose e in posti diversi oltre che per ogni pagina variabili totalmente diverse

    cma ho risolto ottenendo precisamente quel che volevo utilizzando 2 array e poi utilizzando la funzione array_combine dove il primo diventa la chiave del secondo e così facendo posso richiamare i testi giusti nel corpo della pagina indicando semplicemente la chiave (era quel che mi interessava fare

    codice:
    $arra[] = $rowtext['rif'];
    $arrb[] = $rowtext['testo'];
    $myplatformtext = array_combine($arra, $arrb);
    funzionerà senza dubbio ma non è per nulla elegante e piuttosto molto inutile...

    puoi semplicemente fare $myplatformtext = array( $rowtext['rif'], $rowtext['testo'] );

  8. #8
    eccomi
    Se faccio come tu dici perdo la valorizzazione dei record e ottengo in array solo l'ultimo, avevo provato già a fare come tu dici ma con l'effetto appena detto, per riuscire ad avere 1 array completo con indice devo fare così come ho fatto.

    Il mio array viene creato durante un ciclo while su una tabella per cui
    codice:
    WHILE{
    $arra[] = $rowtext['rif'];
    $arrb[] = $rowtext['testo'];
    }
    // combino gli array appena creati
    $myplatformtext = array_combine($arra, $arrb);
    
    //ottengo 1 attay con indice completo di tutti i miei record
    mentre facendo
    codice:
    WHILE{
    $myplatformtext = array( $rowtext['rif'], $rowtext['testo'] );
    }
    //ottengo in array solo ed esclusivamente l'ultimo record della tabella

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.