php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login

Patch php-trunk-array_multisort-natural-case-new-tests for Arrays related Bug #55158

Patch version 2011-08-04 16:01 UTC

Return to Bug #55158 | Download this patch
Patch Revisions:

Developer: arpad@php.net

Index: ext/standard/tests/array/array_multisort_incase.phpt
===================================================================
--- ext/standard/tests/array/array_multisort_incase.phpt	(revision 0)
+++ ext/standard/tests/array/array_multisort_incase.phpt	(revision 0)
@@ -0,0 +1,73 @@
+--TEST--
+Test array_multisort() function : case-insensitive
+--FILE--
+<?php
+/* Prototype  : bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE], ...])
+ * Description: Sort multiple arrays at once similar to how ORDER BY clause works in SQL 
+ * Source code: ext/standard/array.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing array_multisort() : case-insensitive\n";
+
+$a = array(
+	'Second',
+	'First.1',
+	'First.2',
+	'First.3',
+	'Twentieth',
+	'Tenth',
+	'Third',
+);
+
+$b = array(
+	'2 a',
+	'1 bb 1',
+	'1 bB 2',
+	'1 BB 3',
+	'20 c',
+	'10 d',
+	'3 e',
+);
+
+array_multisort($b, SORT_STRING | SORT_CASE, $a);
+
+var_dump($a, $b);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing array_multisort() : case-insensitive
+array(7) {
+  [0]=>
+  string(7) "First.1"
+  [1]=>
+  string(7) "First.2"
+  [2]=>
+  string(7) "First.3"
+  [3]=>
+  string(5) "Tenth"
+  [4]=>
+  string(6) "Second"
+  [5]=>
+  string(9) "Twentieth"
+  [6]=>
+  string(5) "Third"
+}
+array(7) {
+  [0]=>
+  string(6) "1 bb 1"
+  [1]=>
+  string(6) "1 bB 2"
+  [2]=>
+  string(6) "1 BB 3"
+  [3]=>
+  string(4) "10 d"
+  [4]=>
+  string(3) "2 a"
+  [5]=>
+  string(4) "20 c"
+  [6]=>
+  string(3) "3 e"
+}
+===DONE===
Index: ext/standard/tests/array/array_multisort_case.phpt
===================================================================
--- ext/standard/tests/array/array_multisort_case.phpt	(revision 0)
+++ ext/standard/tests/array/array_multisort_case.phpt	(revision 0)
@@ -0,0 +1,73 @@
+--TEST--
+Test array_multisort() function : case-sensitive
+--FILE--
+<?php
+/* Prototype  : bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE], ...])
+ * Description: Sort multiple arrays at once similar to how ORDER BY clause works in SQL 
+ * Source code: ext/standard/array.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing array_multisort() : case-sensitive\n";
+
+$a = array(
+	'Second',
+	'First.1',
+	'First.2',
+	'First.3',
+	'Twentieth',
+	'Tenth',
+	'Third',
+);
+
+$b = array(
+	'2 a',
+	'1 bb 1',
+	'1 bB 2',
+	'1 BB 3',
+	'20 c',
+	'10 d',
+	'3 e',
+);
+
+array_multisort($b, SORT_STRING, $a);
+
+var_dump($a, $b);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing array_multisort() : case-sensitive
+array(7) {
+  [0]=>
+  string(7) "First.3"
+  [1]=>
+  string(7) "First.2"
+  [2]=>
+  string(7) "First.1"
+  [3]=>
+  string(5) "Tenth"
+  [4]=>
+  string(6) "Second"
+  [5]=>
+  string(9) "Twentieth"
+  [6]=>
+  string(5) "Third"
+}
+array(7) {
+  [0]=>
+  string(6) "1 BB 3"
+  [1]=>
+  string(6) "1 bB 2"
+  [2]=>
+  string(6) "1 bb 1"
+  [3]=>
+  string(4) "10 d"
+  [4]=>
+  string(3) "2 a"
+  [5]=>
+  string(4) "20 c"
+  [6]=>
+  string(3) "3 e"
+}
+===DONE===
Index: ext/standard/tests/array/array_multisort_natural_case.phpt
===================================================================
--- ext/standard/tests/array/array_multisort_natural_case.phpt	(revision 0)
+++ ext/standard/tests/array/array_multisort_natural_case.phpt	(revision 0)
@@ -0,0 +1,73 @@
+--TEST--
+Test array_multisort() function : natural sorting case-sensitive
+--FILE--
+<?php
+/* Prototype  : bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE], ...])
+ * Description: Sort multiple arrays at once similar to how ORDER BY clause works in SQL 
+ * Source code: ext/standard/array.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing array_multisort() : natural sorting case-sensitive\n";
+
+$a = array(
+	'Second',
+	'First.1',
+	'First.2',
+	'First.3',
+	'Twentieth',
+	'Tenth',
+	'Third',
+);
+
+$b = array(
+	'2 a',
+	'1 bb 1',
+	'1 bB 2',
+	'1 BB 3',
+	'20 c',
+	'10 d',
+	'3 e',
+);
+
+array_multisort($b, SORT_NATURAL, $a);
+
+var_dump($a, $b);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing array_multisort() : natural sorting case-sensitive
+array(7) {
+  [0]=>
+  string(7) "First.3"
+  [1]=>
+  string(7) "First.2"
+  [2]=>
+  string(7) "First.1"
+  [3]=>
+  string(6) "Second"
+  [4]=>
+  string(5) "Third"
+  [5]=>
+  string(5) "Tenth"
+  [6]=>
+  string(9) "Twentieth"
+}
+array(7) {
+  [0]=>
+  string(6) "1 BB 3"
+  [1]=>
+  string(6) "1 bB 2"
+  [2]=>
+  string(6) "1 bb 1"
+  [3]=>
+  string(3) "2 a"
+  [4]=>
+  string(3) "3 e"
+  [5]=>
+  string(4) "10 d"
+  [6]=>
+  string(4) "20 c"
+}
+===DONE===
Index: ext/standard/tests/array/array_multisort_natural_incase.phpt
===================================================================
--- ext/standard/tests/array/array_multisort_natural_incase.phpt	(revision 0)
+++ ext/standard/tests/array/array_multisort_natural_incase.phpt	(revision 0)
@@ -0,0 +1,73 @@
+--TEST--
+Test array_multisort() function : natural sorting case-insensitive
+--FILE--
+<?php
+/* Prototype  : bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE], ...])
+ * Description: Sort multiple arrays at once similar to how ORDER BY clause works in SQL 
+ * Source code: ext/standard/array.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing array_multisort() : natural sorting case-insensitive\n";
+
+$a = array(
+	'Second',
+	'First.1',
+	'First.2',
+	'First.3',
+	'Twentieth',
+	'Tenth',
+	'Third',
+);
+
+$b = array(
+	'2 a',
+	'1 bb 1',
+	'1 bB 2',
+	'1 BB 3',
+	'20 c',
+	'10 d',
+	'3 e',
+);
+
+array_multisort($b, SORT_NATURAL | SORT_CASE, $a);
+
+var_dump($a, $b);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing array_multisort() : natural sorting case-insensitive
+array(7) {
+  [0]=>
+  string(7) "First.1"
+  [1]=>
+  string(7) "First.2"
+  [2]=>
+  string(7) "First.3"
+  [3]=>
+  string(6) "Second"
+  [4]=>
+  string(5) "Third"
+  [5]=>
+  string(5) "Tenth"
+  [6]=>
+  string(9) "Twentieth"
+}
+array(7) {
+  [0]=>
+  string(6) "1 bb 1"
+  [1]=>
+  string(6) "1 bB 2"
+  [2]=>
+  string(6) "1 BB 3"
+  [3]=>
+  string(3) "2 a"
+  [4]=>
+  string(3) "3 e"
+  [5]=>
+  string(4) "10 d"
+  [6]=>
+  string(4) "20 c"
+}
+===DONE===
Index: ext/standard/tests/array/array_multisort_natural.phpt
===================================================================
--- ext/standard/tests/array/array_multisort_natural.phpt	(revision 0)
+++ ext/standard/tests/array/array_multisort_natural.phpt	(revision 0)
@@ -0,0 +1,61 @@
+--TEST--
+Test array_multisort() function : natural sorting
+--FILE--
+<?php
+/* Prototype  : bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING|SORT_NATURAL|SORT_CASE], ...])
+ * Description: Sort multiple arrays at once similar to how ORDER BY clause works in SQL 
+ * Source code: ext/standard/array.c
+ * Alias to functions: 
+ */
+
+echo "*** Testing array_multisort() : natural sorting\n";
+
+$a = array(
+	'Second',
+	'First',
+	'Twentieth',
+	'Tenth',
+	'Third',
+);
+
+$b = array(
+	'2 a',
+	'1 b',
+	'20 c',
+	'10 d',
+	'3 e',
+);
+
+array_multisort($b, SORT_NATURAL, $a);
+
+var_dump($a, $b);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing array_multisort() : natural sorting
+array(5) {
+  [0]=>
+  string(5) "First"
+  [1]=>
+  string(6) "Second"
+  [2]=>
+  string(5) "Third"
+  [3]=>
+  string(5) "Tenth"
+  [4]=>
+  string(9) "Twentieth"
+}
+array(5) {
+  [0]=>
+  string(3) "1 b"
+  [1]=>
+  string(3) "2 a"
+  [2]=>
+  string(3) "3 e"
+  [3]=>
+  string(4) "10 d"
+  [4]=>
+  string(4) "20 c"
+}
+===DONE===
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Mar 29 06:01:29 2024 UTC