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

    Contare occorrenze di oggetti in due vettori.

    ciao gente.
    mi servirebbe un consiglio.
    ho due vettori strutturati in modo identico che riportano una stringa in cui c'è un numero e del testo.
    io vorrei separare le stringhe dal numero, fare un controllo nel vettore di destinazione e se l'occorrenza è assente, aggiungere, altrimenti, sommare il numero.
    esempio:

    VETT INPUT:
    [0] => 2 scarpe
    [1] => 2 calzini

    VETT CONTROLLO:
    [0] => 2 calzini
    [1] => 1 camicia.

    vorrei che il risultato finale fosse:
    VETT CONTROLLO
    [0] => 4 calzini
    [1] => 1 camicia
    [2] => scarpe

    al momento ho solo quest'idea:
    Codice PHP:
    function modifica_inv($vett){
        
    $vett split("#",$vett);
        for(
    $i=0;$i<count($vett);$i++){
            
    $nome_inv '';
            
    $num 0;
            
    $temp explode(" ",$vett[$i]);
            
    print_r($temp);
            for(
    $n=0;$n<count($temp);$n++){
                if(
    strlen($temp[$n])>2){
                    
    //echo $temp[$n];
                    
    $nome_inv $nome_inv.$temp[$n];
                }
                else{
                    
    $num $temp[$n];
                }
            }
            
    $inv[$nome_inv] = $num;
            return 
    $inv;
        }

    in modo da dividere ogni singolo campo del vettore in sotto campi multipli, verificare se l'oggetto è un numero o meno e poi creare un nuovo vettore che sia modificato:
    Codice PHP:
    $nuovo = array("nomecampo"numero_prelevato
    solo che
    1) la verifica is_int() non ha successo, ho sostituito in via temporanea strlen <
    2) devo ancora fareil controllo uno a uno tra i due vettori, ma quello con in_array() dovrebbe venire facile, il fatto è che in uscita da questa funzione, che viene chiamata per entrambi i vettori, non ottengo i due vettori come li vorrei.

    sono aperto a consigli, correzioni, algoritmi sostitutivi!

    grazie e

  2. #2
    Perchè non utilizzi una espressione regolare per estrarre i valori?

    Inoltre, non c'è modo di ricevere i dati in un formato "migliore" (es. più strutturato, magari da tabulazioni)?

  3. #3
    perché non fai un approccio diverso al problema?

    Crei un array con i prodotti:

    Codice PHP:
    $products = array();

    $products[] = "scarpe";
    $products[] = "calzini";
    $products[] = "camicia"
    E nei due array salvi solo i numeri dei prodotti:

    Codice PHP:
    $input[0] = 2;
    $input[1] = 2;

    $controllo[1] = 4;
    $controllo[2] = 1;
    $controllo[0] = 2
    In modo che ad indice del prodotti = corrisponde la quantità nell'array.

    A questo punto per ogni elementi di $products crei l'array $input_controllo:
    Codice PHP:
    $input_controllo = array();

    for(
    $i 0$i $products$i++)
    {
       
    $input_val intVal($input[$i]);
       
    $controllo_val intVal($controllo[$i]);
       
    $input_controllo[$i] = $input_val $controllo_val;

    Questo eviterebbe errori in caso una volta inserisci scarpa ed una volta scarpe

  4. #4
    Utente di HTML.it L'avatar di lyllo
    Registrato dal
    Apr 2001
    Messaggi
    832
    eh però io parto da un'unica stringa in un campo di un database...

    io parto da

    2 scarpe#3 paia calzini#2 camicie
    per cui, da li, smonto il campo in un vettore con un numero di campi pari agli oggetti nel database.
    2 scarpe
    3 paia calzini
    2 camicie

    e da li lavoro.

    cosa mi consiglieresti, a questo punto?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.