sort en place

This commit is contained in:
Jephté Clain 2024-08-23 13:45:19 +04:00
parent 14ce2e3107
commit e71936c10a
2 changed files with 22 additions and 8 deletions

View File

@ -213,4 +213,23 @@ class A {
static final function filter_not_equals($dest, $value): void { self::filter_if($dest, cv::not_equals($value)); }
static final function filter_same($dest, $value): void { self::filter_if($dest, cv::same($value)); }
static final function filter_not_same($dest, $value): void { self::filter_if($dest, cv::not_same($value)); }
#############################################################################
static final function sort(?array &$array, int $flags=SORT_REGULAR, bool $assoc=false): void {
if ($array === null) return;
if ($assoc) asort($array, $flags);
else sort($array, $flags);
}
static final function ksort(?array &$array, int $flags=SORT_REGULAR): void {
if ($array === null) return;
ksort($array, $flags);
}
static final function usort(?array &$array, array $keys, bool $assoc=false): void {
if ($array === null) return;
if ($assoc) uasort($array, cl::compare($keys));
else usort($array, cl::compare($keys));
}
}

View File

@ -724,15 +724,12 @@ class cl {
#############################################################################
static final function sorted(?array $array, int $flags=SORT_REGULAR, bool $assoc=false): ?array {
if ($array === null) return null;
if ($assoc) asort($array, $flags);
else sort($array, $flags);
A::sort($array, $flags, $assoc);
return $array;
}
static final function ksorted(?array $array, int $flags=SORT_REGULAR): ?array {
if ($array === null) return null;
ksort($array, $flags);
A::ksort($array, $flags);
return $array;
}
@ -763,9 +760,7 @@ class cl {
}
static final function usorted(?array $array, array $keys, bool $assoc=false): ?array {
if ($array === null) return null;
if ($assoc) uasort($array, self::compare($keys));
else usort($array, self::compare($keys));
A::usort($array, $keys, $assoc);
return $array;
}
}