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

    Domanda elementare su ciclo foreach...

    Ciao,

    sto costruendo un file xml da inviare tramite simplexml ed ho un problema, sicuramente stupido, con un ciclo. Purtroppo non trovo un esempio che faccia al caso mio e chiedo una mano a voi esperti (io scrivo in php solo da un paio di settimane)

    Il ciclo è questo:

    $array_opzioni=array("a","b","c");
    $numero_opzioni=count($array_opzioni);
    $ib=0;

    foreach ($array_opzioni as $opzione){
    $item->Variations->Variation = new VariationType();
    $item->Variations->Variation->Quantity = '10';
    $item->Variations->Variation->SKU='SKU'.$opzione;
    $item->Variations->Variation->StartPrice=$prezzo;
    $item->Variations->Variation->VariationSpecifics = new NameValueListArrayType();
    $item->Variations->Variation->VariationSpecifics->NameValueList = new NameValueListType();
    $item->Variations->Variation->VariationSpecifics->NameValueList->Name = 'colore';
    $item->Variations->Variation->VariationSpecifics->NameValueList->Value = $opzione;

    }

    Il problema è che, ovviamente, con ogni ciclo tutte le variabili dell'array $item vengono sovrascritte, quindi alla fine mi ritrovo solo con i valori dell'ultima variabile dell'array ovvero $opzione=C

    Qual è la sintassi per dire che deve farmi un array "Variation" per ogni variabile contenuto nell'array e quindi

    <Variation>$Opzione=A</Variation>
    <Variation>$Opzione=B</Variation>
    <Variation>$Opzione=B</Variation>

    ?

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    19
    Ciao,
    puoi creare un array di variation...

    Codice PHP:
    $vartemp = new VariationType(); 
    $vartemp->Quantity '10';
    $vartemp->SKU='SKU'.$opzione;
    ....

    $item->Variations[] = $vartemp 
    ovviamente prima del ciclo:

    Codice PHP:
    $item->Variations = new Array(); 
    Io sono tuo padre, Luke! Slittino - Sea Scooter - Calciobalilla - Ping Pong

  3. #3
    ciao grazie mille innanzitutto, forse

    Codice PHP:
    $item->Variations=new ArrayObject(); 
    ?

  4. #4
    no così non va: effettua tre cicli ma in ogni caso ogni volta sostituisce il valore di $opzione con l'ultimo valore dell'array

    quindi ora mi ritrovo tre tag Variation, ma con all'interno valori uguali...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2012
    Messaggi
    19
    mmm

    io intendevo una cosa così

    Codice PHP:

    $item
    ->Variations = new Array();

    foreach (
    $array_opzioni as $opzione){
    $vartemp = new VariationType();  
    $vartemp->Quantity '10'
    $vartemp->SKU='SKU'.$opzione

    ... 
    e via via con gli altri...

    $item->Variations[] = $vartemp    


    alla fine del ciclo, nella mia idea, hai in $item->Variations un array con gli elementi che hai creato dentro al ciclo. non è quello che vuoi?

    ciao
    Io sono tuo padre, Luke! Slittino - Sea Scooter - Calciobalilla - Ping Pong

  6. #6
    ciao, innanzitutto grazie. L'array ora è corretto ma mi ritrovo questo problema

    Catchable fatal error: Object of class ArrayObject could not be converted to string in ...

    il codice incriminato è questo


    function serialize( $elementName, $value, $attributeValues, $preserveNull, $typeName, &$dataConverter )
    {
    if (isset($value))
    {
    if ($value || $preserveNull)
    {
    $ret = '<' . $elementName . $this->_getAttributeString( $attributeValues ) . '>';
    if ( $dataConverter )
    $value = $dataConverter->encodeData( $value, $typeName, $elementName );
    echo "


    ";
    echo "<pre>";
    print_r($value);
    echo "</pre>";
    $ret .= $value;

    $ret .= '</' . $elementName . '>';

    return $ret;
    }
    else
    return '<' . $elementName . '/>';
    }
    else
    {
    return '';
    }
    }

    In altre parole devo convertire l'array in stringa: come si fa?

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.