summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUrban Müller2015-10-30 15:37:17 +0100
committerUrban Müller2015-10-30 15:39:23 +0100
commitda71e326d6bbd7e531f0948cac99cf0c4d51ad6e (patch)
treeae5c0061e50e620d3171a4f2d95956bf43864586
parentd908cb0d4e147721970c7eff5bd24f112bdac4cd (diff)
downloaditools-da71e326d6bbd7e531f0948cac99cf0c4d51ad6e.tar.gz
itools-da71e326d6bbd7e531f0948cac99cf0c4d51ad6e.tar.bz2
itools-da71e326d6bbd7e531f0948cac99cf0c4d51ad6e.zip
minimal it::sort
-rw-r--r--it.class9
-rwxr-xr-xtests/it.t4
2 files changed, 12 insertions, 1 deletions
diff --git a/it.class b/it.class
index 073b2bf..b097e60 100644
--- a/it.class
+++ b/it.class
@@ -1030,5 +1030,12 @@ static function json_decode($json)
return ($data = json_decode($json)) === null && $json != 'null' ? it::error(array('title' => "invalid json", 'body' => $json)) : $data;
}
+static function sort($array, $mode = "")
+{
+ $func = it::replace(array('n' => ""), count_chars($mode, 3)) . "sort"; # count_chars sorts flags
+ $func($array, it::match('n', $mode) ? SORT_NUMERIC : 0);
+
+ return $array;
+}
+
}
-?>
diff --git a/tests/it.t b/tests/it.t
index 10c4d0e..33a6c13 100755
--- a/tests/it.t
+++ b/tests/it.t
@@ -393,3 +393,7 @@ is(it::any2utf8(array(utf8_decode('Müller') => utf8_decode('Müller'))), array(
foreach (array($dummy, false, true, null, 1, "a", "Ä", "/", array()) as $var)
is(it::json_decode(it::json_encode($var)), $var);
+
+is(it::sort(array("2!","19!","1!")), array("1!", "19!", "2!"));
+is(it::sort(array("2!","19!","1!"), "r"), array("2!", "19!", "1!"));
+is(it::sort(array("2!","19!","1!"), "rn"), array("19!", "2!", "1!"));