Pantheon\Terminus\Collections\TerminusCollection::getFilteredMemberList PHP Метод

getFilteredMemberList() публичный Метод

Returns an array of data where the keys are the attribute $key and the values are the attribute $value, filtered by the given array
public getFilteredMemberList ( array $filters, string $key = 'id', string | array $value = 'name' ) : array
$filters array Attributes to match during filtration e.g. array('category' => 'other')
$key string Name of attribute to make array keys
$value string | array Name(s) of attribute to make array values
Результат array Array rendered as requested $this->attribute->$key = $this->attribute->$value
    public function getFilteredMemberList(array $filters, $key = 'id', $value = 'name')
    {
        $members = $this->getMembers();
        $member_list = [];
        $values = $value;
        if (!is_array($values)) {
            $values = [$value];
        }
        foreach ($members as $member) {
            $member_list[$member->get($key)] = [];
            foreach ($values as $item) {
                $member_list[$member->get($key)][$item] = $member->get($item);
            }
            if (count($member_list[$member->get($key)]) < 2) {
                $member_list[$member->get($key)] = array_pop($member_list[$member->get($key)]);
            }
            foreach ($filters as $attribute => $match_value) {
                if ($member->get($attribute) != $match_value) {
                    unset($member_list[$member->get($key)]);
                    break;
                }
            }
        }
        return $member_list;
    }