Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832

    Operare su due stringhe che diventano vettori-

    ciao a tutti.
    sto diventando matto dietro ad una questione che pensavo fosse elementare e invece mi tiene ancora sveglio da stamattina.

    ho un record in un database costituito da una stringa complessa che contiene delle variabili.
    stessa cosa in un campo hidden di un form.

    STRINGA DB:
    codice:
    100TI|100FE|100FC|100AC|100AL
    STRINGA FORM:
    codice:
    200TI|100FE|100FC|200AC|100XX|100YZ
    quello che voglio fare è creare una funzione che sia in grado di SOMMARE i valori che hanno UGUALE parte testuale e AGGIUNGERE in coda quelli che mancano.

    Lo specifico esempio dovrebbe quindi risultare in:

    codice:
    300TI|200FE|200FC|300AC|100AL|100XX|100YZ
    non metto alcun codice perchè in un'intera giornata non son oriuscito a tirar fuori nulla di decente.
    al massimo sono riuscito a crearmi due vettori anche del tipo
    [CHIAVE_MIA] => Valore
    esempio:
    Codice PHP:
    Array (    
     [
    TI] => 200     
    [FE] => 100     
    [FC] => 100     
    [AC] => 200     
    [AL] => 100 

    ma poi non sono riuscito a trovare il sistema per fare quel benedetto confronto.
    con array_diff non riesco, interesect mi da un isieme vuoto

    insomma sto cedendo

    spero mi sappiate aiutare.



    PS: ma modernizzare un pò sto forum no eh? la gestione dei tag è quantomeno anticata!

  2. #2
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    wow domanda difficile o poco interessante?

  3. #3
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Senza volerti prendere in giro, ma hai mai usato explode o implode?

    explode separa dei valori (separati da un qualsiasi carattere) e li converte in un unico array.

    Ecco come funziona:

    Codice PHP:
    <?php
    $str 
    "Ciao,io sono,una stringa,che diventa, un Array!";

    $arr explode(","$str);

    var_dump($arr);
    Dovrebbe ritornare:

    codice:
    Array(5) (
    [0] => "Ciao",
    [1] => "io sono"
    [2] => "una stringa"
    [3] => "che diventa"
    [4] => "un Array!"
    )
    (Altre info: http://php.net/manual/en/function.explode.php)

    Per il processo inverso (da array a stringa), implode è il migliore:

    Codice PHP:
    <?php

    $arr 
    = array('Ciao''io sono''un Array'' che diventa''una stringa!');
    $str implode(","$arr);

    var_dump($str);
    ?>
    Dovrebbe ritornare:
    codice:
    string (47) "Ciao,io sono,un Array, che diventa,una stringa!"
    (Altre info: http://php.net/manual/en/function.implode.php)

    Poi il calcolo puoi farlo con un' espressione regolare.

    Un'ultima cosa:

    A quanto ho capito, tu vorresti questo:
    codice:
    DB 100TI|100FE|100FC|100AC|100AL
    FM 200TI|100FE|100FC|200AC|100XX|100YZ
    
    dovrebbe dare:
    
    300TI|200FE|200FC|300AC|100AL|100XX|100YZ
    Se è così, potresti fare una explode dei valori DB e una della form, prendere le var uguali con un' altra explode (condita da foreach per rendere più pulito il codice) e sommare i valori.

    Se qualcosa non ti è chiaro, è possibilie perché:

    1) Non ho capito bene cosa vuoi fare
    2) L'inserimento di variabili in questo modo è molto Assembly-Style (AX, BX) e poco facile da gestire

  4. #4
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    scusa ma da quello che ho scritto io si evince che explode è un comando noto
    visto che peraltro creo dei vettori che hanno come CHIAVE direttamente la parte testuale.

    il punto è che una volta creati i due vettori POPOLATI a partire dall'explode, del tipo CHIAVE - VALORE,cose che dovrebbe anche essere più semplice da gestire poichèposso controllare qualche record del vettore prendere, beh, paradossalmente, NON riesco a farlo.

    ripeto, sono a questo punto:
    Codice PHP:
    Array_DB (    
    [
    TI] => 200     
    [FE] => 100     
    [FC] => 100     
    [AC] => 200     
    [AL] => 100 
    )
    ...
    Array_FORM (    
     [
    TI] => 200     
    [FE] => 100     
    [FC] => 100     
    [AC] => 200     
    [PIPPO] => 100 

    visto così mi fa facile, ma non riesco a farlo!!

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.