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

    array incrementare valore

    premetto che mi cimento da poco nell'uso degli array e sono un po "confuso" sul dafarsi:
    in pratica ho una stringa così composta (esempio):

    234*5|768*2|123*1|234*2

    ogni voce (es: 234*5) è id e quantità separati da *, ogni voce è poi separata dalla successiva da |.

    vorrei capire (nell'esempio sopra) quante volte compare ogni singolo id nella stringa per avere un risultato del tipo.
    codice:
    234 - 7
    768 - 2
    123 - 1
    ho provato a creare un array attraverso un for in questo modo (ometto il ciclo perchè funziona correttamente):

    codice:
    $products = array();
    ....
    for .... {
    .......
    $products[$idpro] = $qta;
    }
    ...
    l'array si crea correttamente, ma ovviamente non mi somma le quantità man mano che incontra indici simili ma le sovrascrive.

    c'è un modo per fare incrementare il valore di un array se l'indice esiste già invece che sovrascriverlo?

  2. #2
    con isset puoi controllare se esiste gia (e quindi sommi) oppure non esiste (e quindi lo poni = alla quantità)

    Codice PHP:
    <?php 
    $s
    ="234*5|768*2|123*1|234*2";
    $a=explode('|',$s);
    $z=array();

    foreach(
    $a as $b){
        
    $c=explode('*',$b);
        if(isset(
    $z[$c[0]]))
            
    $z[$c[0]] += $c[1];
        else
            
    $z[$c[0]] = $c[1];

    }

    print_r($z);
    ?>

  3. #3
    ti ringrazio infinitamente.
    funziona perfettamente, ho anche capito come funziona..

    di meglio non potevi fare

    .. grazie

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.