Tom: Anzahl der Werte eines Arrays zählen

Beitrag lesen

Hello,

Ich glaube, ich habe einen Fehler beim Array erstellen. Als Fehlerdmeldung kommt nämlich:
Warning: Invalid argument supplied for foreach()

Ich habe es so deklariert:
$name = array(array());
$name['name']['nummer'];

Mach es in einzelschritten, dann klappt es auf jeden Fall:

$name = 'Hans';

$_namearr = array();
  $_namearr[$name] = array();
  $_namearr[$name]['nummer'] = 10;

Ich nehme an, dass Du Datenwerte (die Namen) als Schlüssel verwenden willst.

Du kannst das auch anders aufbauen:

$_user = array();
  $_user['name']   = array();
  $_user['visits'] = array();

$_user['name'][1] = 'Hans';
  $_user['name'][2] = 'Paul';
  $_user['name'][3] = 'Frieda';

$_user['visits'][1] = 0;
  $_user['visits'][2] = 10;
  $_user['visits'][3] = 2;

Nun korrespondiert immer ein Element der Liste $_user['name'] mit einem Element der Liste $_user['visits']. Das hat den Vorteil, dass Du die meisten Arrayfunktionen auf jede Liste anwenden kannst: Sortieren, Max, Min, usw.

Wenn Du dann den zugehörigen Namen zum größten visit-Wert suchst, ermittelst Du einfach den Schlüssel des größten Elementes und schaust, ob es in der anderen Liste einen Namen dazu gibt.

Außerdem hat diese Art des Aufbaus auch den Vorteil, dass sie beim Serialisieren erheblich weniger Platz benötigt.

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de