note 68016 added to function.array-walk

From: Date: Mon, 10 Jul 2006 12:12:13 +0000
Subject: note 68016 added to function.array-walk
Groups: php.notes 
Request: Send a blank email to php-notes+get-114633@lists.php.net to get a copy of this message
Sorry for the previous wild post, which was incorrect too --- to <ludvig dot ericson at gmail dot com> I would solve the problem in the following way, which should be faster too. Note that the assignment to $string{$i} will use only the first character from the return value of the user callback function, so it is useless to return strings longer than 1 characters. <?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) { echo $value.' '; 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'); // Ouput: f r u i t $my_string = 'interesting'; string_walk(&$my_string, 'upper_func'); echo $my_string; // Output: iNtErEsTiNg ?> ---- Server IP: 213.92.11.19 Probable Submitter: 151.44.90.54 ---- X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER autolearn=no version=2.64 ---- Manual Page -- http://www.php.net/manual/en/function.array-walk.php Edit -- http://master.php.net/note/edit/68016 Del: integrated -- http://master.php.net/note/delete/68016/integrated Del: useless -- http://master.php.net/note/delete/68016/useless Del: bad code -- http://master.php.net/note/delete/68016/bad+code Del: spam -- http://master.php.net/note/delete/68016/spam Del: non-english -- http://master.php.net/note/delete/68016/non-english Del: in docs -- http://master.php.net/note/delete/68016/in+docs Del: other reasons-- http://master.php.net/note/delete/68016 Reject -- http://master.php.net/note/reject/68016 Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#114633) next »