PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Massiivi sorteerimine ja grupeerimine
Postitaja: joker 2007-06-26 10:49:44
Massiiv $a:
Code => 22
Quantity => 2

Code => 12
Quantity => 3

Code => 22
Quantity => 3

Kuidas sorteerida ja summeerida massiivi $a nii, et tulemus oleks:
Code => 22
Code => 5 //(2+3)

Code => 12
Quantity => 3

Vaatan antud massiivi sorteerimist juba mitmendat päeva ühte ja teistpidi, ning mõistus keeldub süntaksit välja mõtlemast.
RE: Massiivi sorteerimine ja grupeerimine
Postitaja: hmz 2007-06-26 10:58:28
Sul ei saa ühes massiivis olla sama indeksiga seotud mitu väärtust, kehtib ainult viimati omistatud väärtus. Kui niiväga tahad neid summeerida, tee mitmemõõtmeline massiiv stiilis $a[22][1]=2, $a[22][2]=3, sel juhul saad indeksiga 22 seotud massiivi väärtuste summa: array_sum($a[22])
Uuri veel manuaali ja puhka kui aru ei saa :)
RE: Massiivi sorteerimine ja grupeerimine
Postitaja: rtfm 2007-06-26 10:59:31
TSITEERITUD:
Massiiv $a:
Code => 22
Quantity => 2

Code => 12
Quantity => 3

Code => 22
Quantity => 3

Kuidas sorteerida ja summeerida massiivi $a nii, et tulemus oleks:
Code => 22
Code => 5 //(2+3)

Code => 12
Quantity => 3

Vaatan antud massiivi sorteerimist juba mitmendat päeva ühte ja teistpidi, ning mõistus keeldub süntaksit välja mõtlemast.


ühe tsükliga liidad kõigepealt quantityd kokku ja teise tsükliga järjestad array sobivaks
RE: Massiivi sorteerimine ja grupeerimine
Postitaja: jutumeez 2007-06-26 11:05:30

PHP kood:
 
foreach ($a as $key => $value) {
  if (!isset(
$b[$value['Code']])) {
    
$b[$value['Code']] = $value['Quantity'];
  } else {
    
$b[$value['Code']] += $value['Quantity'];
  }
}
ksort($b);
$a $b;
unset(
$b);


vähendasin natuke ka masiivi mõõtmeid :p

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0799760818481