Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Array In Colonna

  1. #1

    Array In Colonna

    Buona sera a tutti voiiii!!!

    ho una richiesta di aiuto da porgervi

    dunque partendo da una stringa del tipo:

    &lat=38.175958&long=13.091019&name=PALERMO&c=1&lat =45.6484&long=12.194422&name=TREVISO&c=1&lat=38.16 77&long=13.0645&name=2115&lat=38.4905&long=12.7925 &name=2120&lat=39.027&long=12.3609&name=2125&lat=3 9.6833&long=11.996&name=2130&lat=40.4341&long=11.6 071&name=2135&lat=41.0164&long=11.3086&name=2140&l at=41.6634&long=10.9701&name=2145&lat=42.149&long= 10.7114&name=2150&lat=42.77&long=10.4127&name=2155 &lat=43.5999&long=10.8016&name=2200&lat=44.2076&lo ng=11.0894&name=2205&lat=44.75&long=11.274&name=22 10&lat=45.2063&long=11.4321&name=2215&lat=45.517&l ong=11.732&name=2220&lat=45.605&long=12.0303&name= 2225

    tecnicamente i dati che si riportano sono & lat= & long= &name= e per i primi 2 campi è presente &c=1

    io dovrei ordinare questi dati in una array a 4 colonne dove le prime 2 righe contengono anche la 4 colonna e le altre no:

    lat long name c
    lat long name c
    lat long name
    lat long name

    etc etc

    è diverse notte che ci lavoro su provando tutte le funzioni disponibili per gli array..

    cosa mi dite in merito?

    grazie

    salvo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Cancellato perchè non funziona come deve

  3. #3
    grande simo..ci avevo pensato ad un doppio array ma non sapevo come impostare la cosa...ti faccio un'altra domanda..

    di solito quando incontri un problema o lo risolvi o trovi un'alternativa io avevo pensato (e ti dico il vero a me converrebbe cosi) ad una soluzione piu' ottimale:

    ovvero io dovrei prendere la nostra famosa stringa di ingresso e creare un output di questo genere:

    &lat=xxx:::&long=xxx:::&name=xxx:::&c=1§§ etc etc

    dove ::: separa un singolo campo mentre §§ mi separa i vari gruppi da 4
    naturalmente dal 3 campo in poi dove il campo c non c'e piu' lasciarlo vuoto

    &lat=xx:::&long=xxx:::&name=xxx::: :::§§ etc etc

    spero di essere stato chiaro..

    comunque un grazie anticipatooo

    salvo

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Non ho bene capito che cosa vuoi fare, comunque qua c'è il codice corretto e funzionale:
    Codice PHP:
    <?php
    //la variabile con le variabili
    $data "&lat=38.175958&long=13.091019&name=PALERMO&c=1&lat=45.6484&long=12.194422&name=TREVISO&c=1&lat=38.1677&long=13.0645&name=2115&lat=38.4905&long=12.7925&name=2120&lat=39.027&long=12.3609&name=2125&lat=39.6833&long=11.996&name=2130&lat=40.4341&long=11.6071&name=2135&lat=41.0164&long=11.3086&name=2140&lat=41.6634&long=10.9701&name=2145&lat=42.149&long=10.7114&name=2150&lat=42.77&long=10.4127&name=2155&lat=43.5999&long=10.8016&name=2200&lat=44.2076&long=11.0894&name=2205&lat=44.75&long=11.274&name=2210&lat=45.2063&long=11.4321&name=2215&lat=45.517&long=11.732&name=2220&lat=45.605&long=12.0303&name=2225";

    //creo l'array
    $arr = Array();

    //metto i dati nell'array
    $arr explode("&",$data);

    //ora dovrei avere tutte le varibili
    //mi serve creare un altro array con i nomi corretti
    $arr2 = Array();
    $i 0;

    foreach(
    $arr as $value){
    //cerco c
    $c strpos($value,"c=");
    if(
    $c !== false){
    $c_value substr($value$c);
    $arr2[$i]["c"]=$c_value;
    $i++;
    }else{
    //se non trovo il c nonostante ci siano tutti e 3 i campi faccio l'increment
    if($arr2[$i]["lat"] && $arr2[$i]["long"] && $arr2[$i]["name"]){
    $i++;
    }
    }
    //cerco lat. in questo caso lat aggiunge un array a arr2
    $lat strpos($value,"lat=");
    if(
    $lat !== false){
    $name_value substr($value$name);
    $arr2[$i]["lat"]=$name_value;
    }
    //cerco long
    $long strpos($value,"long=");
    if(
    $long !== false){
    $long_value substr($value$long);
    $arr2[$i]["long"]=$long_value;
    }
    //cerco name
    $name strpos($value,"name=");
    if(
    $name !== false){
    $name_value substr($value$name);
    $arr2[$i]["name"]=$name_value;
    }
    }
    echo 
    "<pre>";
    print_r($arr2);
    echo 
    "</pre>";
    ?>

  5. #5
    il tuo codice funge perfettamente!
    ci stiamo avvicinando pero non è ancora cio' che mi consente di elaborare la stringa nella seconda fase..

    la mia idea di prima era che invece di creare piu' array in uscita me ne creava uno solo e mi divideva le varie stringe in gruppi separati da caratteri definiti:

    esempio

    &lat=xx ::: & long=xxx ::: & name=xxx ::: &c=1 §§ &lat=xx ::: & long=xxx ::: & name=xxx ::: &c=1 §§ &lat=xx ::: & long=xxx ::: & name=xxx ::: :::1 §§ .....

    ::: campi intermedi array
    §§ separazione di gruppo

    dopo il 2° gruppo invece di c=1 un bel ""

    in questo modo quando carico la stringa faccio uno split interno



    ehehehe ne sapessi quanto te forse mi spiegherei meglio

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.