Eine kleine Funktion, die ein sprintf() auf jedes Index/Werte-Paar eines Arrays anwendet.
<?php /** * mpl by ERB software * @author stefan.erb(at)erb-software.com * @since PHP 5.2 */ /** * wendet sprintf auf jedes Element an. * Das erste Argument ist der Value, das 2te der Index * @param <String> $format ein sprintf-Formatstring * @param <Array<Variant> $array * @return <Array<String> */ function aprintf($format, $array){ foreach($array as $index => &$item){ $item = sprintf($format, $item, $index); } return $array; } ?>
Einige Beispiele
<pre> <?php include('aprintf.php'); $a['ai'] = 'A1'; $a['bii'] = 'B2'; echo("Nur den Value verarbeiten: aprintf('Hallo %s Welt', \$a)\n"); print_r(aprintf('Hallo %s Welt', $a)); echo("Wert und Index verarbeiten: aprintf('Der Wert %s hat den Index %s', \$a)\n"); print_r(aprintf('Der Wert %s hat den Index %s', $a)); echo("Der Index wird vor dem Wert ausgegeben: aprintf('Der Index %2\$s hat den Wert %1\$s', \$a)\n"); print_r(aprintf('Der Index %2$s hat den Wert %1$s', $a)); echo("Der ursprüngliche Array hat sich nicht verändert:\n"); print_r($a); ?> </pre>
Und dessen Ausgabe
Nur den Value verarbeiten: aprintf('Hallo %s Welt', $a) Array ( [ai] => Hallo A1 Welt [bii] => Hallo B2 Welt ) Wert und Index verarbeiten: aprintf('Der Wert %s hat den Index %s', $a) Array ( [ai] => Der Wert A1 hat den Index ai [bii] => Der Wert B2 hat den Index bii ) Der Index wird vor dem Wert ausgegeben: aprintf('Der Index %2$s hat den Wert %1$s', $a) Array ( [ai] => Der Index ai hat den Wert A1 [bii] => Der Index bii hat den Wert B2 ) Der ursprüngliche Array hat sich nicht verändert: Array ( [ai] => A1 [bii] => B2 )