Array_unique filter

Hello,

I receive data from a selectfield, i want to filter out the duplicate elements. To create a navigation from it. As far as i understand pluck () creates an array from a collection, or am i wrong?
how do i use pluck () to get the value of [type] ?

$test = $pages->find('mitglieder')->children()->published()->pluck('type');
array_unique($test);
print_r($test);

print_r output

Array ( [0] => Kirby\Cms\Field Object ( [type] => member ) [1] => Kirby\Cms\Field Object ( [type] => member ) [2] => Kirby\Cms\Field Object ( [type] => member ) [3] => Kirby\Cms\Field Object ( [type] => member ) [4] => Kirby\Cms\Field Object ( [type] => ) [5] => Kirby\Cms\Field Object ( [type] => member ) )

The easiest way to get an array of unique values:

$uniqueTypes = $pages->find('mitglieder')->children()->published()->pluck('type', ',', true);

The β€œtrick” here is to use a separator value even if the field does not contain multiple separator-separated values. This will give you a simple array of type values. The third parameter states whether you want unique values, see https://getkirby.com/docs/reference/objects/pages/pluck

1 Like

Thank you @texnixe