phpbar.de logo

Mailinglisten-Archive

[php] werte in einem array addieren

[php] werte in einem array addieren

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Die Aug 16 11:18:10 CEST 2005


Hi Werner,

Werner Laude schrieb:
> hallo Lutz
>
> scheinbar löst es aber mein Problem noch nicht ganz..

das verstehe ich nicht ganz. :-) Es löst genau das Problem, welches Du in
der Frage formuliert hast. ;-)


>> Und noch schöner mit foreach:
>>
>>	$myCat = array();
>>
>>	foreach($shoppingcart as $myArt) {
>>		$myProbeI = $myArt[4];
>>		if (!isset($myCat[$myProbeI])) {
>>
>>
> / /hier wird doch gar nicht unterschieden ob die kath = 1 oder was
> anderes ist.(2,3,..)

Doch. Durch die Abfrage des $myProbeI-Elements von $myCat. $myProbeI steht
ja für eine beliebige "kath_shipping".


>>			$myCat[$myProbeI] = 1;
>>		} else {
>>			$myCat[$myProbeI]++;
>>		}
>>	}
>>
>>
>>
> zählen tut es, aber sobald eine andere shippinggruppe in den Korb geht,
> wird wieder -
>
> $myCat[$myProbeI]-
>
> überschrieben.

Das liegt dann aber nicht an dem von Henning vorgeschlagenen und von mir
verschönerten Code. Was macht Dein Skript denn so drumherum? :-)


> Noch mal zu Verdeutlichung:
>
> Es sollen alle Artikel egal in welcher Reihenfolge die im Array liegen,
> nach shipping kathegorien sortiert/gezählt werden.

Sortiert oder gezählt? Das ist ein wichtiger Unterschied. Bei der
Ausgangsfrage ging es um Zählen.


> item1 shipping 1
> item2 shipping 2
> item3 shipping 1
>
> echo $anzahl_der_shipping1;
> Ergebnis 2
> echo $anzahl_der_shipping2;
> Ergebnis 1
>
> usw.usw.

Das macht der Code doch, den wir Dir vorgeschlagen haben. Noch mal als
vollständiges Beispiel zum Testen:

  $shoppingcart[0][4] = 1;
  $shoppingcart[1][4] = 2;
  $shoppingcart[2][4] = 3;
  $shoppingcart[3][4] = 3;
  $shoppingcart[4][4] = 2;
  $shoppingcart[5][4] = 3;
  $shoppingcart[6][4] = 1;
  $shoppingcart[7][4] = 3;
  $shoppingcart[8][4] = 2;
  $shoppingcart[9][4] = 3;

  $myCat = array();

  foreach($shoppingcart as $myArt) {
    $myProbeI = $myArt[4];
    if (!isset($myCat[$myProbeI])) {
     $myCat[$myProbeI] = 1;
    } else {
      $myCat[$myProbeI]++;
    }
  }

  echo('<pre>');
  print_r($myCat);
  echo('</pre>');

Was Du oben mit $anzahl_der_shipping1 bezeichnest, ist hier halt $myCat[0]
usw. :-)


Viele Grüße

Lutz


php::bar PHP Wiki   -   Listenarchive