phpbar.de logo

Mailinglisten-Archive

[php] Problem mit asort/arsort

[php] Problem mit asort/arsort

Oliver Kummerow naklar_(at)_altavista.net
Mon, 06 Sep 1999 08:11:14 +0200


Hi,

> 4. Die einzig korrekte Weise in PHP ein Array zu durchlaufen ist
> 
>    while(list($k, $v) = each($a)) { print "$k $v\n$ }


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

$arr ["eintrag"] = 1 ;
$arr ["nochwas"] = 0 ;
$arr ["letztens"] = 2 ;

for ( $i = 0; $i < count ( $arr) ; $i ++ ) 
{
echo "<br>". $i . ": " . key ( $arr ) . " == " . $arr [  key ( $arr ) ]
;
next ( $arr );
}

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



> 
> Perl hat dieses Problem nicht. Es unterscheidet undef und 0.
> 

U.a. eine Funktion wie strpos wird durch die fehlende Unterscheidbarkeit
verhunzt. Ist der gesuchte Substring (needle) am Anfang des durchsuchten
(haystack), gibt es einen Rückgabewert, der identisch ist mit dem, wenn
needle überhaupt nicht vorkommt. Der Workaround geht über
strlen ($ergebnis), aber das ist seltsam.

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?


Mit freundlichen Grüßen,
Oliver Kummerow
email: naklar_(at)_altavista.net


php::bar PHP Wiki   -   Listenarchive