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

    Creare variabile d riferimento su ciclo

    ciao!

    provo a spiegare la mia problematica.

    faccio diversi cicli foreach per costruire una tabella.
    per ogni ciclo dovrei creare un riferimento su due campi, creando una variabile da incrementare in caso si verfichino delle condizioni.
    il riferimento è su ordineId e articoloColore.
    in pratica una cosa del genere:
    Codice PHP:
    foreach ($ordini as $ord) {
        
    $ordineId $ord['ordine_id'];
        foreach (
    $queryClienteTaglia as $qt) {
            
    $colore $qt['colore_codice'];
            
    $variabileConRiferimentoOrdineColore 0// COME SALVO IL RIFERIMENTO?
            
    if ($condizione) {
                
    $variabileConRiferimentoOrdineColore++;
            }
            
    // ECCETERA
        
    }

    ma come faccio a creare un variabile che si riferisce a $ordineId e $colore??

    ho provato a semplificare al massimo, spero sia riuscito a spiegarmi!

  2. #2
    Quello che vuoi ottenere non è chiarissimo ma credo tu possa usare un array le cui chiavi sono l'id dell'ordine
    Codice PHP:
    $stored_values=array();

    foreach (
    $ordini as $ord) {
        
    $ordineId $ord['ordine_id'];
        foreach (
    $queryClienteTaglia as $qt) {
            
    $colore $qt['colore_codice'];
            
    $variabileConRiferimentoOrdineColore 0// COME SALVO IL RIFERIMENTO?

            
    $stored_values[$ordineId]=array('taglia'=>'XL''colore'=>'rosso');

            if (
    $condizione) {
                
    $variabileConRiferimentoOrdineColore++;
            }
            
    // ECCETERA
        
    }

    Naturalmente l'array po' essere strutturato in svariati modi e contenere N dimensioni

  3. #3
    si in effetti è complicato.

    ma in pratica io dovrei creare tante variabili quanti sono gli incroci ordineId/colore.
    variabili che corrisponderebbero a $variabileConRiferimentoOrdineColore.
    quindi, ogni volta che c'è un nuovo incrocio ordineId/colore, dovrei creare una variabile $variabileConRiferimentoOrdineColore.
    ognuna di queste variabili sarà settata a zero inizialmente.
    e verrà incrementata in automatico da $condizione.

    quindi è come se la variabile si dovesse chiamare $ordine3ColoreNero = 0;

    la cosa bella è la $condizione già ce l'ho ed è funzionante.
    ma non so come applicarla dinamicamente all'incrocio giusto!

  4. #4
    Quote Originariamente inviata da fermat Visualizza il messaggio
    si in effetti è complicato.

    ma in pratica io dovrei creare tante variabili quanti sono gli incroci ordineId/colore.
    variabili che corrisponderebbero a $variabileConRiferimentoOrdineColore.
    quindi, ogni volta che c'è un nuovo incrocio ordineId/colore, dovrei creare una variabile $variabileConRiferimentoOrdineColore.
    ognuna di queste variabili sarà settata a zero inizialmente.
    e verrà incrementata in automatico da $condizione.

    quindi è come se la variabile si dovesse chiamare $ordine3ColoreNero = 0;

    la cosa bella è la $condizione già ce l'ho ed è funzionante.
    ma non so come applicarla dinamicamente all'incrocio giusto!
    io userei un array bidimensionale
    Codice PHP:
    //id_ordine: 3

    if(isset($array[3]['black'])){//se esiste "l'incrocio", ne incremento il valore
        
    $array[3]['black']++;
    }else{
    //altrimenti, creo l'incrocio e lo setto a zero
        
    $array[3]['black']=0;


  5. #5
    ciao!

    grazie al tuo suggerimento sono praticamente arrivato alla soluzione del problema.
    grazie!!

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ciao!

    provo a spiegare la mia problematica.

    faccio diversi cicli foreach per costruire una tabella.
    per ogni ciclo dovrei creare un riferimento su due campi, creando una variabile da incrementare in caso si verfichino delle condizioni.
    il riferimento è su ordineId e articoloColore.
    in pratica una cosa del genere:
    Codice PHP:
    foreach ($ordini as $ord) {
        
    $ordineId $ord['ordine_id'];
        foreach (
    $queryClienteTaglia as $qt) {
            
    $colore $qt['colore_codice'];
            
    $variabileConRiferimentoOrdineColore 0// COME SALVO IL RIFERIMENTO?
            
    if ($condizione) {
                
    $variabileConRiferimentoOrdineColore++;
            }
            
    // ECCETERA
        
    }

    ma come faccio a creare un variabile che si riferisce a $ordineId e $colore??

    ho provato a semplificare al massimo, spero sia riuscito a spiegarmi!
    se ho ben capito quello che ti serve ti basta combinare idOrdine e colore in una strina e usarla come chiave di un array. se la chiave non esiste è la prima volta che compare la combinazione quindi la setti a zero in caso contrario la incrementi di 1

    Codice PHP:
    $stored_values=array();

    foreach (
    $ordini as $ord) {
       
    $ordineId $ord['ordine_id'];
       
    $arrayReference = array(); // AGGIUNTO DA CIRO
       
    foreach ($queryClienteTaglia as $qt) {
          
    $colore $qt['colore_codice'];
          
    $variabileConRiferimentoOrdineColore 0// COME SALVO IL RIFERIMENTO?

          
    $stored_values[$ordineId]=array('taglia'=>'XL''colore'=>'rosso');

          
    //AGGIUNTO DA CIRO
          
    $referenceKey $ordineId "_" $colore;
          if(!
    array_key_exists($referenceKey,$arrayReference)){
             
    $arrayReference[$referenceKey] = 0;
          }else{
             
    $arrayReference[$referenceKey]++;
          }


          
    // ECCETERA
       
    }

    ops non avevo visto il messaggio della soluzione. sorry.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.