phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?Re:_[php]_=C4quivalent_zu_"map"_von_Perl_?= gesucht gesucht

[php] =?iso-8859-1?Q?Re:_[php]_=C4quivalent_zu_"map"_von_Perl_?= gesucht gesucht

Thomas Feyrer Dante_(at)_altmuehlnet.de
Tue, 10 Oct 2000 03:35:20 +0200


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=$_\">&nbsp;$_&nbsp;</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=$_">&nbsp;$_&nbsp;</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