• Home
  • Forum
  • Fare Web
  • PHP

somma elementi, finché elementi di altro array sono uguali

  • Creatore Discussione Creatore Discussione loreberti10
  • Data di inizio Data di inizio 22 Set 2012
L

loreberti10

Utente Attivo
22 Set 2012
43
0
0
  • 22 Set 2012
  • #1
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.606
54
48
TN
  • 23 Set 2012
  • #2
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
 
L

loreberti10

Utente Attivo
22 Set 2012
43
0
0
  • 23 Set 2012
  • #3
criric ha scritto:
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
Clicca per allargare...

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!
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

[JS] Passare un array ed effettuare la somma degli elementi
  • felino
  • 28 Feb 2014
  • Javascript
Risposte
2
Visite
3K
Javascript 3 Mar 2014
felino
G
scomponi un numero intero come la somma di 20 numeri interi casuali maggiori di zero diversi fra loro
  • GerryM
  • 12 Dic 2023
  • Javascript
Risposte
1
Visite
3K
Javascript 27 Dic 2023
WmbertSea
F
Somma di più tabelle da script
  • filipix
  • 30 Ago 2023
  • Javascript
Risposte
0
Visite
2K
Javascript 30 Ago 2023
filipix
F
E
Help Sql somma orari
  • Emanuele85
  • 31 Dic 2022
  • PHP
  • 2
Risposte
32
Visite
3K
PHP 26 Gen 2023
marino51
M
Somma inversa di Array
  • MaxFor
  • 6 Nov 2022
  • C/C++
Risposte
2
Visite
3K
C/C++ 10 Nov 2022
MaxFor
M
A
Moltiplicazione tramite somma
  • antoooo
  • 5 Gen 2022
  • PHP
Risposte
5
Visite
2K
PHP 7 Gen 2022
illiterate2020
I
A
Somma di orari con centesimi
  • alex.g
  • 12 Nov 2021
  • PHP
Risposte
1
Visite
1K
PHP 15 Nov 2021
Carolina86
C
V
Somma foreach
  • Vincanto
  • 21 Giu 2021
  • PHP
Risposte
2
Visite
1K
PHP 21 Giu 2021
macus_adi
V
Somma Risposte
  • Vincanto
  • 11 Giu 2021
  • PHP
Risposte
5
Visite
2K
PHP 16 Giu 2021
macus_adi
V
  • Bloccata
Query per una somma
  • Vincanto
  • 11 Giu 2021
  • PHP
Risposte
2
Visite
1K
PHP 11 Giu 2021
Max 1
G
Somma dei Minuti
  • Gae
  • 15 Mar 2021
  • PHP
Risposte
3
Visite
1K
PHP 16 Mar 2021
Gae
G
L
somma e informa
  • luigithen
  • 16 Ott 2020
  • PHP
Risposte
16
Visite
2K
PHP 17 Ott 2020
luigithen
L
L
query somma
  • luigithen
  • 6 Ott 2020
  • PHP
Risposte
8
Visite
2K
PHP 7 Ott 2020
luigithen
L
L
salvare somma con sottrazione
  • luigithen
  • 26 Set 2020
  • PHP
Risposte
1
Visite
1K
PHP 27 Set 2020
macus_adi
W
fare la somma di un valore estratto da un ciclo while
  • wuolfit_one
  • 8 Lug 2020
  • Classic ASP
Risposte
1
Visite
2K
Classic ASP 1 Giu 2025
Paolo69
A
Somma delle colonne di una tabella pivot
  • Andreawave
  • 10 Gen 2020
  • Database
Risposte
6
Visite
3K
Database 13 Gen 2020
marino51
[PHP] Unioni di due array con somma di valori
  • MarcoGrazia
  • 24 Ott 2019
  • PHP
Risposte
6
Visite
4K
PHP 25 Ott 2019
marino51
R
php Somma valori in file csv
  • report
  • 3 Mar 2019
  • PHP
Risposte
2
Visite
3K
PHP 3 Mar 2019
report
R
[Javascript] Somma con array input HTML
  • Emix
  • 15 Gen 2019
  • Javascript
Risposte
1
Visite
3K
Javascript 17 Gen 2019
Emix
A
[MS Access] Somma Campi se in altro campo presente un determinato testo
  • Alessandro Vitale
  • 27 Nov 2018
  • MS Access
Risposte
1
Visite
2K
MS Access 28 Nov 2018
CarlettoFed
C
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?