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

    [php] modificare un array associativo

    Salve a tutti,

    ho definito un array associativo e successivamente devo controllare se una chiave dell'array associativo esiste: in caso negativo la creo associandola al valore intero 0; in caso positivo cerco il valore associato a tale chiave e lo incremento. come posso fare?

    Ho controllato sul sito ufficiale php ed ho trovato ad esempio una funzione per inserire un elemnto in un array di nome array_push() ma mi pare non lavori con gli array associativi!

    Attendo consigli da qualcuno + esperto di me

    grazie
    RiKkArDo on IRCnet

  2. #2

    prova non funzionante

    ho provato con:

    Codice PHP:
    if (!array_key_exists($record1["mask"], $mask))
        
    $mask = array($record1["mask"], $record1["n"]);
    else 
    $mask[$record1["mask"]] = $mask[$record1["mask"]] + $record1["n"]; 
    ma non va

    $mask è l'array associativo

    $record1["mask"] contiene una stringa;
    $record1["n"] contiene un intero;

    in pratica $record1 è il risultato di un mysql_fetch_array dove il campo mask è una stringa e il campo n è il risultato di un count(*) nella query
    RiKkArDo on IRCnet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    è un po' macchiavellico e poi esce un array multidimensionale e non un array semplice come servirebbe a te, ma te lo posto lo stesso

    Penso che questo ti possa servire solo se hai php5 installato, perchè dovrebbe funzionare correttamente con l'uso di array_combine(php5), altrimenti, come detto, ti crea un array multidimensionale...

    Codice PHP:
    <?php
    $arr 
    = array('uno'=>1,"due"=>2,"tre"=>3,"quattro"=>4);

    if(
    array_key_exists("nuovachiave",$arr))
    {
        
    $arr['nuovachiave'] += 1;
    }
    else 
    {
        
    $i=1;
        
    $arrKey = array();
        
    $arrValue = array();
        
    $arrKey[0] = 'nuovachiave';
        
    $arrValue[0] = 0;
        foreach(
    $arr as $key=>$value)
        {
            
    $arrKey[$i] = $key;
            
    $arrValue[$i] = $value;
            
    $i++;
        }
        
        
    /*Qui usi array_combine(); per unire l'array delle chiavi con quello dei valori
        altrimenti viene un array multidimensionale:*/
        
        
    for($i=0$i<count($arrKey); $i++)
        {
            
    $newArr[][$arrKey[$i]] = $arrValue[$i];
            
    $i++;
        }
        
        
    print_r($newArr);
    }

    ?>
    ciao

  4. #4
    grazie ken84 per il codice ma io volevo usare un array monodimensionale sfruttando il fatto che esso può essere associativo.

    Ho risolto con:

    Codice PHP:
    if (!array_key_exists($record1["mask"], $mask)) {
                                                     
    array_push_associative($mask, array($record1["mask"] => $record1["n"]));
    }
    else {
         
    $mask[$record1["mask"]] = $mask[$record1["mask"]] + $record1["n"];

    RiKkArDo on IRCnet

  5. #5
    Supponendo che tu abbia un un altro array che contiene le chiavi che ti interessano e che si chiama $keys puoi fare in questo modo che secondo me è molto più semplice:

    Codice PHP:
    foreach( $keys as $value ) {
       
    $array_valori[$value] = ( isset( $array_valori[$value] ) ) ? $array_valori[$value] + ;

    Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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.