From e71936c10a52832d0a7c7ef5cb42632f81720a00 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 23 Aug 2024 13:45:19 +0400 Subject: [PATCH] sort en place --- src/A.php | 19 +++++++++++++++++++ src/cl.php | 11 +++-------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/A.php b/src/A.php index a2db747..01aef4d 100644 --- a/src/A.php +++ b/src/A.php @@ -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)); + } } diff --git a/src/cl.php b/src/cl.php index 41a0a1c..0334e09 100644 --- a/src/cl.php +++ b/src/cl.php @@ -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; } }