PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Helper / Select / Generic / Groups.php
codepress-admin-columns / classes / Helper / Select / Generic Last commit date
GroupFormatter 3 days ago LabelFormatter 3 days ago GroupFormatter.php 3 days ago Groups.php 3 days ago LabelFormatter.php 3 days ago
Groups.php
43 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Helper\Select\Generic;
6
7 use AC\Helper\Select;
8 use AC\Helper\Select\OptionGroup;
9
10 class Groups extends Select\Options
11 {
12 public function __construct(Select\Options $options, GroupFormatter $formatter)
13 {
14 parent::__construct($this->create_groups($options, $formatter));
15 }
16
17 private function create_groups(Select\Options $options, GroupFormatter $formatter): array
18 {
19 $groups = [];
20
21 foreach ($options as $option) {
22 $groups[$formatter->format((string)$option->get_value())][] = $option;
23 }
24
25 $option_groups = [];
26
27 foreach ($this->sort($groups) as $label => $_options) {
28 $option_groups[] = new OptionGroup($label, $_options);
29 }
30
31 return $option_groups;
32 }
33
34 protected function sort(array $groups): array
35 {
36 // sort natural by key
37 uksort($groups, 'strnatcmp');
38
39 return $groups;
40 }
41
42 }
43