note 68015 deleted from function.array-walk by simp
| From: | simp@php.net | Date: | Mon, 10 Jul 2006 14:15:08 +0000 |
| Subject: | note 68015 deleted from function.array-walk by simp | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-114635@lists.php.net to get a copy of this message | ||
Note Submitter: legolas558 dot sourceforge comma net
----
to <ludvig dot ericson at gmail dot com>
I would solve the problem, which should be faster too.
<?php
function string_walk(&$string, $funcname, $userdata = null) {
for($i = 0; $i < strlen($string); $i++)
$string{$i} = call_user_func($funcname, $string{$i}, $i, $userdata);
}
// does nothing
function dummy_func($value, $position) {
return $value;
}
// adds a space
function spacing_func($value, $position) {
return $value.' ';
}
// converts each odd character to upper case
function upper_func($value, $position) {
if ($position % 2 == 0)
return $value;
else
return strtoupper($value);
}
$my_string = 'fruit';
string_walk(&$my_string, 'spacing_func');
echo $my_string;
// Ouput: f r u i t
$my_string = 'interesting';
string_walk(&$my_string, 'upper_func');
echo $my_string;
// Output: iNtErEsTiNg
?>