Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    5

    Riconoscere occorrenze in array multidimensionale

    Buongiorno a tutti,

    sto cercando un modo per gestire un array multidimensionale. In pratica devo eliminare le righe nell'array che hanno stesso valore Array[0], sommando però i valori in Array[1].

    L'array è del tipo:

    Array[0] Array[1]
    EUR 100
    USD 50
    GBP 70
    EUR 350

    Quello che devo ottenere è:

    Array[0] Array[1]
    EUR 450
    USD 50
    GBP 70

    In PHP ho trovato solo la funzione array_unique che mi aiuta solo a rimuovere i duplicati

    Grazie in anticipo a chi riesce a darmi una mano

  2. #2
    Non ho capito com'e' composta la struttura degli array, da come l'hai scritto sembra che tu abbia un array in cui compare due volte la stessa key (cosa che non e' possibile).

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    5
    Ho un array di array composto da N righe e 2 colonne, le 2 colonne sono appunto due array ognuno di N righe e 1 colonna.
    Il valore in base a cui devo effettuare la ricerca è il primo array, quello che contiene le valute.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    con array_count_values puoi vedere quali sono i valori ricorrenti, dopodichè vedi in che posizione si trovano quei valori e li sommi

  5. #5
    Originariamente inviato da Resiak
    Ho un array di array composto da N righe e 2 colonne, le 2 colonne sono appunto due array ognuno di N righe e 1 colonna.
    Il valore in base a cui devo effettuare la ricerca è il primo array, quello che contiene le valute.
    Se ho capito bene basta un banalissimo ciclo for:

    Codice PHP:
    $arr = array(
        array(
            
    'EUR',
            
    'USD',
            
    'GBP',
            
    'EUR',
        ),
        array(
            
    100,
            
    50,
            
    70,
            
    150,
        )
    );

    function 
    merge($currency$value) {
        
    $output = array();
        for ( 
    $i 0$i count($currency); $i++ ) {
            
    $output[$currency[$i]] += $value[$i];
        }
        return 
    $output;
    }

    print_r(merge($arr[0], $arr[1])); 

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.