[PHP] array_walk, or array_map, or foreach?

2006-10-20 Thread Dave M G

PHP List,

I took a snippet of code right off the php.net site to use trim on all 
the elements of an array.


Theoretically, it should test if the element in an array is in turn 
another array, and break it down to the next level until it gets to a 
string it can use trim on.


This is the code:

public static function trimArray($array)
{
if (is_array($array))
{
array_walk($array, trimArray);
}
else
{
$array = trim($array);
}
return $array;
}

The function exists inside a static class called Utility where I keep 
all basic utility functions.


I don't know if it's the fact that it's in a static class that makes a 
difference, but I've tried the following variations on the line with 
array_walk() in it:


array_walk($array, Utlity::trimArray)

array_map(Utility::trimArray, $array)

array_map(trimArray, $array)

I've even tried accomplishing it with a foreach(), but no matter what I 
do, it doesn't work.


As it walks through the array, it seems to trim a copy of the element in 
the array, trim that, but leave the original array untouched.


What am I missing here?

--
Dave M G
Ubuntu 6.06 LTS
Kernel 2.6.17.7
Pentium D Dual Core Processor
PHP 5, MySQL 5, Apache 2

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] array_walk, or array_map, or foreach?

2006-10-20 Thread Robert Cummings
On Fri, 2006-10-20 at 16:04 +0900, Dave M G wrote:
 PHP List,
 
 I took a snippet of code right off the php.net site to use trim on all 
 the elements of an array.
 
 Theoretically, it should test if the element in an array is in turn 
 another array, and break it down to the next level until it gets to a 
 string it can use trim on.
 
 This is the code:
 
 public static function trimArray($array)
 {
 if (is_array($array))
 {
 array_walk($array, trimArray);

I'm too lazy too look, but usually when using a class method as a
handler for PHP callback functions you pass the method as follows:

array_walk( $array, array( 'ClassName', 'trimArray' ) );

Cheers,
Rob.
-- 
..
| InterJinn Application Framework - http://www.interjinn.com |
::
| An application and templating framework for PHP. Boasting  |
| a powerful, scalable system for accessing system services  |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for   |
| creating re-usable components quickly and easily.  |
`'

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php