Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Aggiungere elemento in array annidato

    Salve a tutti, ho un array del genere
    Array ( [0] => Array ( [id_prod_attributo] => 13070 [ids_attr] => Array ( [0] => 28 ) )

    dovrei aggiungere al verificarsi di una determinata condizione un elemento all'array con chiave [ids_attr]

    grazie per l'aiuto!

  2. #2
    Codice PHP:
    $array=array(array('id_prod_attributo'=>13070,'ids_attr'=>array(28)));
    if(
    $succedequalcosa=='a un valore'
    $array[0]['ids_attr'][]='Nuovo valore';

    print_r($array); 
    //stamperà: Array ( [0] => Array ( [id_prod_attributo] => 13070 [ids_attr] => Array ( [0] => 28 [1] => Nuovo valore ) ) ) 
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    Grazie, è proprio quello che ho sempre fatto, ma per qualche motivo se lo faccio dentro un ciclo non riesco a beccare la chiave dell'array...

  4. #4
    E' un grazie sarcastico? Perché da come hai spiegato la cosa non si capisce il problema allora.
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    Originariamente inviato da portapipe
    E' un grazie sarcastico? Perché da come hai spiegato la cosa non si capisce il problema allora.
    Figurati, nessun sarcasmo

    Codice PHP:
    if ((!in_multi_array($row['id_product_attribute'],$ar_attr_prod)))
    {
        
    $ar_attr_prod[]=array('id_prod_attributo'=>$row['id_product_attribute'],'ids_attr'=>array($row['id_attribute']));
    }
    else
    {
        
        
        for(
    $t=0$t<sizeof($ar_attr_prod); $t++)
        {
            if(
    $ar_attr_prod[$t]['id_prod_attributo']==$row['id_product_attribute'])
            {
                
            
    $ar_attr_prod[$t]['ids_attr'][]=$row['id_attribute'];    
                
            }
        
        }
        
        


  6. #6
    Quindi funziona tutto o hai ancora quel problema nei cicli? Perché se non ti funziona solo nel ciclo ti consiglio di aggiungere un echo "Sono nel ciclo" all'interno, così da sapere se il ciclo è preso in considerazione o se magari c'è qualcosa che non quadra nelle condizioni dell'if all'interno del ciclo stesso.
    Ce l'ho fatta! - ItalianPixel -

  7. #7
    Purtroppo non funziona, non vede l'else, la funzione che verifica la condizione è la seguente:

    Codice PHP:
    function in_multi_array($needle$haystack$alsokeys=false)
        {
            
    $ret false;
            if(!
    is_array($haystack)) return false;
            if(
    in_array($needle$haystack) || ($alsokeys && in_array($needlearray_keys($haystack)) )) return true;
            else {
                foreach(
    $haystack AS $element) {
                    
    $ret in_multi_array($needle$element$alsokeys);
                }
            }
           
            return 
    $ret;
        } 

  8. #8
    E' proprio la funzione di verifica che non va, in_array ha un comportamento non lineare, ho cambiato il metodo di verifica con un foreach

  9. #9
    Ok, adesso funziona a dovere, grazie per la disponibilità

  10. #10
    Bene. Qual era il problema?
    Ce l'ho fatta! - ItalianPixel -

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.