somma elementi, finché elementi di altro array sono uguali

loreberti10

Utente Attivo
22 Set 2012
43
0
0
Buonasera a tutti, volevo chiedere se mi potreste aiutare con un problema che sto riscontrando da oggi e mi sta facendo impazzire.

Io ho da fare una (apparente) semplice operazione:
Ho 2 array, tutti e due contenenti interi.
Ora nel primo array ho numeri casuali, mentre nel secondo ho numeri in sequenza che si ripetono..
Mi spiego meglio: ad esempio:
Array1 ( 20 , 15, 16, 18, 19 , 7)
Array2 (1, 1, 1, 2, 3, 3)

Quello che io vorrei fare è : Sommare gli elementi dell'array1 finchè ho elementi uguali nell'array2.
Per essere ancora più chiari, nel caso sopra citato dovrei avere come risultato:

(20+15+16) , 18, (19+7)

ho provato a fare le cose che mi venivano in mente ad esempio mettere controlli come if(array2[$x] == array2[$x+1]) ma non riesco a trovare una soluzione...

Grazie in anticipo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
a me è venuta in mente questa soluzione
fai due cicli :
con il primo raggruppi e conti gli elementi del secondo array
con il secondo fai le somme in base al risultato del primo

PHP:
$numeri_uno = array(20, 15, 16, 18, 19, 7);
$numeri_due = array(1, 1, 1, 2, 3, 3);

$somme = array();
foreach ($numeri_due as $value) {
    $c = array_count_values($numeri_due);
    $somme[array_search($value, $numeri_due)] = $c[$value];
}
var_dump($somme);

$y = 0;
$risultato = array();
foreach ($somme as $key => $value) {
    $risultato[$key] = 0;
    for ($i = 0; $i < $value; $i++, $y++) {
        $risultato[$key] += $numeri_uno[$y];
    }
}
var_dump($risultato);

non ho commentato, vedi se è applicabile al tuo caso
probabilmente c'è un altra soluzione con delle funzioni php che non conosco o cmq adesso non mivegono in mente
 

loreberti10

Utente Attivo
22 Set 2012
43
0
0
Ciao,
a me è venuta in mente questa soluzione
fai due cicli :
con il primo raggruppi e conti gli elementi del secondo array
con il secondo fai le somme in base al risultato del primo

PHP:
$numeri_uno = array(20, 15, 16, 18, 19, 7);
$numeri_due = array(1, 1, 1, 2, 3, 3);

$somme = array();
foreach ($numeri_due as $value) {
    $c = array_count_values($numeri_due);
    $somme[array_search($value, $numeri_due)] = $c[$value];
}
var_dump($somme);

$y = 0;
$risultato = array();
foreach ($somme as $key => $value) {
    $risultato[$key] = 0;
    for ($i = 0; $i < $value; $i++, $y++) {
        $risultato[$key] += $numeri_uno[$y];
    }
}
var_dump($risultato);

non ho commentato, vedi se è applicabile al tuo caso
probabilmente c'è un altra soluzione con delle funzioni php che non conosco o cmq adesso non mivegono in mente

Grazie mille!!!
Mi era venuta in mente anche quella opzione ma non ero riuscito a metterla in atto.
Con i primi test sembra proprio funzionare!
Grazie mille! :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
felino [JS] Passare un array ed effettuare la somma degli elementi Javascript 2
V Somma foreach PHP 2
V Somma Risposte PHP 5
V Query per una somma PHP 2
A Somma fra 2 o più orari PHP 1
G Somma dei Minuti PHP 3
L somma e informa PHP 16
L query somma PHP 8
L salvare somma con sottrazione PHP 1
W fare la somma di un valore estratto da un ciclo while Classic ASP 0
A Somma delle colonne di una tabella pivot Database 6
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
R php Somma valori in file csv PHP 2
Emix [Javascript] Somma con array input HTML Javascript 1
A [MS Access] Somma Campi se in altro campo presente un determinato testo MS Access 1
A [Javascript] Somma di un campo in una tabella dinamica Javascript 0
T Problema somma mysql MySQL 8
A [Javascript] Somma di input dinamici Javascript 1
B Somma armonica jQuery 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
P [PHP] somma totale imponibile e totale fattura PHP 3
Z Somma di numeri in una lista di app inventor Sviluppo app per Android 0
V Somma anni ad una data con datepicker jQuery 1
A [PHP] Somma in unico risultato di più tabelle PHP 6
T [PHP] matrice con somma diagonali PHP 2
Trapano [PHP] somma di una lista di pagamenti PHP 2
Bunz [Javascript] somma orario input + calcolo straordinario Javascript 3
P Query con Somma di un Campo , aggregazione e join Database 3
G Somma variabili impossibile Javascript 3
A Aiuto somma di campi MS Access 0
A Somma di sottoreport su report Database 2
A Controllo somma di valori in una select Ajax 1
R Sistema di conteggio (somma) HTML e CSS 4
G Somma dati se codice uguale Classic ASP 4
G Somma di report e sottoreport MS Access 0
Emix Somma automatica checkbox Javascript 1
Akuma Somma dei campi in una tabella PHP 1
felino Microsoft Excel: somma su un'intera colonna Windows e Software 1
N Somma di variabili PHP 3
V perchè una somma può non funzionare? PHP 4
M Somma di due record MySQL 7
blips Controllo somma di valori in una select Javascript 5
C [RISOLTO] Problema somma td, prende solo il primo valore jQuery 7
Emix Somma su punti con controllo vip PHP 5
L Somma solo se non riappare elemento PHP 4
pup3770 Somma righe in corrispondenza PHP 10
max_400 Unire 2 query - calcoli matematici: somma, moltiplicazione, percentuale PHP 7
Danvart Access Somma di Valori in Tabelle Collegate MS Access 0
Monital Somma di molti campi del database PHP 4
G Calcolare la somma Javascript 3

Discussioni simili