Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99

    estrapolare data da una stringa

    Ciao,
    ho una stringa, dove devo tirar fuori dei dati per poi costruirci un array...
    Però ho un problema... Il valore che devo recuperare non è separato da virgola ma bensì dal carattere tratto. Ovviamente mi riferisco alla data. Purtroppo la data non è separata da virgola come gli altri valori e questo mi crea non pochi problemi... Come faccio??

    Sono andato alla ricerca di come estrapolare dei valori da una stringa, ma non riesco a venirne a capo...

    La stringa è simile a questa:
    Date,Element1,Element2,Element3,Element4 2014-10-10,2689,100.20,99.33,2613 2014-10-13, 2628,101.10,99.98,2741 2014-10-14,2741,100.06,99.20,2658 2014-10-15...

    Io dovrei trasformare la stringa in un array e questo mi è semplice, utilizzando split()... Ma facendo ciò mi trovo un elemento dell'array con la data... Come faccio a separare la data da tutto il resto??

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Non ho idea se è la risposta alla tua domanda, ho dovuto rileggerla più di una volta per capire cosa intendevi ottenere.
    Un modo divertente per farlo (sicuramente non il migliore, regex sono più indicate in questo caso) potrebbe essere:

    codice:
    $string = "2014-10-10,2689,100.20,99.33,2613 2014-10-13,2628,101.10,99.98,2741 2014-10-14,2741,100.06,99.20,2658 2014-10-15,2741,100.06,99.20,2658";
    $date = array_reduce(explode(' ', $string), function($carry, $item) { $carry[] = explode(',', $item)[0]; return $carry; });
    var_dump($date);
    Demo: http://3v4l.org/IaF3s

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Con regexp

    Codice PHP:
    <?php
    $string 
    "2014-10-10,2689,100.20,99.33,2613 2014-10-13,2628,101.10,99.98,2741 2014-10-14,2741,100.06,99.20,2658 2014-10-15,2741,100.06,99.20,2658";

    $pattern "/(\d{4}-\d{2}-\d{2})/";

    // mette tutte le date in un array
    preg_match_all($pattern,$string,$array);
    print_r($array);

    // Rimpiazza le date da nulla
    $str preg_replace($pattern,"",$string);
    ?>
    <br/>
    Prima :<?php print $string ?><br/>
    Dopo  :<?php print $str ?><br/>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    99
    Grazie,
    ma mi rendo conto di essermi spiegato male, solo adesso... Voglio dire non ci sarei mai arrivato a fare una roba del genere come avete postato. E questo mi mette in enorme difficoltà, nel continuare.

    In pratica quello che devo fare è tirar fuori:
    le date dalla stringa, poi tirar fuori altri valori dalla stessa stringa e successivamente buttar fuori in echo la nuova stringa "composta".

    Ho parlato di array perché con un altro programma recupero i valori e li trasformo in array (sono fuso)..

    Comunque vi ringrazio, sono stati molto utili i vostri interventi... Ora vedo se riesco ad andare avanti...

    L'importante era tirar fuori le date... e qua vedo che ci siamo!
    grazie!

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Combinando il preg_match_all e il preg_replace hai quello che vuoi.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.