Hallo Stephan,
Das mit dem ganzen Tag macht nichts. Jeder fängt mal an 
Aber man könnte das Array auch gleich andersherum befüllen.
Dann würde man sich auch gleich noch den recht zeitaufwendigen
array_flip() schenken.
Ich befürchte nein. Das Array befüllt sich nämlich selbst
durch ein Formular mit Checkboxen. Wenn ich da eine andere
Lösung dafür finden würde, wäre ich sehr zufrieden.
Ich verstehe ehrlich gesagt nicht genau,
wovon ihr redet. Wie gross sind denn diese
Arrays?
In PHP gibt es eigentlich gar keine Arrays
im „herkömmlichen Sinne“, ein scheinbares
„Array“ a = Array( ‚a‘, ‚b‘, ‚c‘, ‚d‘ ) ist
ja tatsächlich ein assoziatives Array mit
„Zahlen“ als Keys: a = Array (
‚0‘ => ‚a‘
‚1‘ => ‚b‘
‚2‘ => ‚c‘
‚3‘ => ‚d‘
);Ich habe mal ein Array der Größe 10^6 (memory_limit=256M)
mit je 4 Zeichen als ‚value‘ testweise erzeugt: $numelem = 1000000; # generate huge array
$testar1 = array();
$chrincr = ‚AAAA‘;
$start = microtime_float();
for( $i=0,$j = $chrincr; $idas läuft hier in
Start:AAAA (index:0)
End: BEXHO (index: 1000000)
**in 1.086 sec**
durch. Das Array zu ‚flippen‘
print 'key value flip
';
$start = microtime\_float();
$testar2 = array\_flip($testar1);
$end = microtime\_float() - $start;
dauert dann
key value flip
done in 0.789 sec
Wird das Array ‚in place‘ ge-flippt,
also nicht in ein anderes Array,
print 'inplace key value flip
';
$start = microtime\_float();
$testar2 = array\_flip($testar2);
$end = microtime\_float() - $start;
dauert der Spass:
inplace key value flip
done in 0.554 sec
(unter SuSE 10.2 in vmware auf einem
Windows-XP-Rechner Athlon 3400+)
Hat das Array „nur“ 10,000 Elemente,
ist die „Zeit“ für die gesamte obige Prozedur
nahezu nicht bemerkbar
array test
Start:AAAA (index:0)
End: AOUQ (index: 10000)
in 0.031 sec
key value flip
done in 0.018 sec
inplace key value flip
done in 0.010 sec
Daher meine Frage.
Grüße
CMБ