update lock clucknut
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 14s
Build, Push and Deploy / build-and-push (push) Successful in 3m14s
Build, Push and Deploy / deploy-staging (push) Successful in 25s
Build, Push and Deploy / deploy-production (push) Has been skipped

This commit is contained in:
2026-04-18 20:32:18 +07:00
parent 4554035227
commit dcaf267458
3359 changed files with 153185 additions and 205489 deletions

View File

@@ -87,17 +87,29 @@ public function __construct(\Traversable $iterator, int|callable $sort, bool $re
public function getIterator(): \Traversable
{
if (1 === $this->sort) {
return $this->iterator;
yield from $this->iterator;
return;
}
$array = iterator_to_array($this->iterator, true);
$keys = $values = [];
foreach ($this->iterator as $key => $value) {
$keys[] = $key;
$values[] = $value;
}
if (-1 === $this->sort) {
$array = array_reverse($array);
} else {
uasort($array, $this->sort);
for ($i = \count($values) - 1; $i >= 0; --$i) {
yield $keys[$i] => $values[$i];
}
return;
}
return new \ArrayIterator($array);
uasort($values, $this->sort);
foreach ($values as $i => $v) {
yield $keys[$i] => $v;
}
}
}