phpbar.de logo

Mailinglisten-Archive

[php] Problem mit asort/arsort

[php] Problem mit asort/arsort

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Mon, 06 Sep 1999 12:13:00 +0200


Oliver Kummerow wrote:
> Es gibt noch eine: count (array) und dann in einer Schleife iterieren.

Stimmt, das geht auch noch, weil man sich ja nicht auf den Rückgabewert von
next() verläßt und next() intern ja undef und 0/"" unterscheiden kann:

In PHP sind Hashes assoziative Arrays, deren Elemente zusätzlich in
einer doppelt verketteten Liste gespeichert sind. Anders als Perl-Hashes
haben PHP-Hashes also eine Ordnung - darum sind asort und sort ja 
unterschiedliche Funktionen. Intern kann next() den Fall undef
von 0/"" unterscheiden: Ist der Nachfolgezeiger der Liste NULL, haben 
wir den Fall undef, sonst den Fall ""/0

> Man kriegt als Zusatzinformation mit $i noch die Rangfolge des Eintrags.

Ja, die müßte man im while/each-Fall separat mitführen, dann hätte man diese
Information dort auch.

> Mal abgesehen davon, dass mir keine andere Programmiersprache bekannt
> ist, die numerisch 0 und Leerstring gleichsetzt. In der Praxis führt das
> ständig zu skurrilen Schwierigkeiten. Ich finde, das wäre doch mal einer
> Änderung wert?

Erzähl das dem Core-Team, aber stelle sicher, daß sie Dich auch
verstehen. Das ist mitunter gar nicht so einfach.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive