build($resource['children']); $result[] = $resource; } usort($result, [$this, '_sortTree']); return $result; } /** * Sort ACL resource nodes * * @param array $nodeA * @param array $nodeB * @return int */ protected function _sortTree(array $nodeA, array $nodeB) { return $nodeA['sortOrder'] < $nodeB['sortOrder'] ? -1 : ($nodeA['sortOrder'] > $nodeB['sortOrder'] ? 1 : 0); } }