Connecting Tech Pros Worldwide Forums | Help | Site Map

Filtering arrays based on an object attribute

laredotornado@zipmail.com
Guest
 
Posts: n/a
#1: Feb 27 '07
Hi,

I have an array filled with a particular type of object, which
contains an attribute "m_level", of integer type. What I want is to
get a subset of the array whose "m_level" attribute is equal to zero.
Is there a short way I can do this other than iterating through a
foreach / for loop?

I'm using PHP 4.4.4.

Thanks, - Dave


OmegaJunior
Guest
 
Posts: n/a
#2: Feb 27 '07

re: Filtering arrays based on an object attribute


On Tue, 27 Feb 2007 23:23:14 +0100, laredotornado@zipmail.com
<laredotornado@zipmail.comwrote:
Quote:
Hi,
>
I have an array filled with a particular type of object, which
contains an attribute "m_level", of integer type. What I want is to
get a subset of the array whose "m_level" attribute is equal to zero.
Is there a short way I can do this other than iterating through a
foreach / for loop?
>
I'm using PHP 4.4.4.
>
Thanks, - Dave
>
Did you try the array_filter() function?


--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Sjoerd
Guest
 
Posts: n/a
#3: Feb 27 '07

re: Filtering arrays based on an object attribute


laredotornado@zipmail.com wrote:
Quote:
Hi,
>
I have an array filled with a particular type of object, which
contains an attribute "m_level", of integer type. What I want is to
get a subset of the array whose "m_level" attribute is equal to zero.
Is there a short way I can do this other than iterating through a
foreach / for loop?
>
I'm using PHP 4.4.4.
>
Thanks, - Dave
>

function filter_particular_type($array) {
$result = array();
foreach ($array as $item) {
if ($item->m_level == 0) {
$result[] = $item;
}
}
return $result;
}

// or

function callback_filter($item) {
return $item->m_level == 0;
}
array_filter($array, 'callback_filter');
Closed Thread