Mailinglisten-Archive |
At 23:40 09.10.2000 +0200, you wrote:
>wenn ich in Perl z.B. eine Link-Liste von allen Buchstaben haben möchte (um
>z.B. eine Liste zu filtern) dann mache ich das so:
>
>print map { "<a href=\"details.pl?anf=$_\"> $_ </a> } (A..Z) ;
>
>Ergibt
>
><a href="details.pl?anf=A">_A_</a>
><a href="details.pl?anf=B">_B_</a>
><a href="details.pl?anf=C">_C_</a>
><a href="details.pl?anf=D">_D_</a>
>...
>
>Gibt es etwas ähnlich kurzes oder ein Äquivalent zu "map" auch unter PHP?
Nein, gibt es nicht, ist aber schnell geschrieben:
<?php
function map($text, $array) {
for($i=0,$n=count($array);$i<$n;$i++)
$out .= str_replace('$_', $array[$i]);
return $out;
}
function get_list($from,$to) {
for($i=ord($from),$n=ord($to);$i<=$n;$i++)
$array[] = chr($i);
return $array;
}
// Aufruf:
print map('<a href="details.pl?anf=$_"> $_ </a>', get_list('A',
'Z'));
?>
Das (A..Z) könnte man zwar auch anstatt dem ('A', 'Z'),
jedenfalls als ('A..Z'), allerdings ist diese Syntax in
PHP nicht implementiert, und man sollte bei der bisher
verwendeten beiben, damit es andere später auch leichter
haben, den Code zu verstehen.
Bye
Dante
--
<? /* PHP4 */ echo(preg_replace('_(at)_([0-9a-f]{2})._(at)_ie','chr(hexdec("\\1"))',
'48G65h6cI6Cj6fK20l57M6Fn72O6Cp64Q21r')) /* PHP - The better choice */ ?>
php::bar PHP Wiki - Listenarchive