如何过滤 PHP 数组列表并获取作为数组返回的内容


how to filter php array list and get return as array

这是我的数组print_r()

Array([0]=> stdCLass Object ([name] =>john 
                             [surname] =>future
                             [group] =>one1
                            ) 
      [1]=> stdCLass Object ([name] =>chris 
                             [surname] =>past
                             [group] =>two2
                            ) 
)

我想做的是按组搜索这个数组。例子。告诉它 group ="one1"

我的回报将是name=johnsurname = future

我不知道如何尝试这个。

假设数组被称为$groups

返回包含姓名和姓氏的数组

function get_name_from_groups($groups, $group_name)
{
    foreach ( $groups as $group ) {
        if ( $group->group == $group_name ) {
           return array( 'name' => $group->name, 
                         'surname' => $group->surname
                       );
        }
    }
    return false;
}
$var = get_name_from_groups($groups, 'one1');
if ( $var === false ) {
    echo 'The group one1 does not exist';
    exit;
}
echo 'Name = ' . $var['name'];
echo 'Surname = ' . $var['surname'];

返回包含姓名的对象

function get_name_from_groups($groups, $group_name)
{
    foreach ( $groups as $group ) {
        if ( $group->group == $group_name ) {
           $ret = new stdClass();
           $ret->name    = $group->name;
           $ret->surname = $group->surname;
        }
    }
    return false;
}
$var = get_name_from_groups($groups, 'one1');
if ( $var === false ) {
    echo 'The group one1 does not exist';
    exit;
}
echo 'Name = ' . $var->name;
echo 'Surname = ' . $var->surname;