summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_rand_variation3.phpt
diff options
context:
space:
mode:
authorRaghubansh Kumar <kraghuba@php.net>2007-10-19 18:41:13 +0000
committerRaghubansh Kumar <kraghuba@php.net>2007-10-19 18:41:13 +0000
commit36ca7b94e6844069a0479439d7e18d15c607d762 (patch)
treec6dd778dd738064afc67fc1ebafc0aac9b0afa2b /ext/standard/tests/array/array_rand_variation3.phpt
parentdd465b457ca6da798a8fc742c0a0ca3098eb5385 (diff)
downloadphp-git-36ca7b94e6844069a0479439d7e18d15c607d762.tar.gz
New testcases for array_rand() function
Diffstat (limited to 'ext/standard/tests/array/array_rand_variation3.phpt')
-rw-r--r--ext/standard/tests/array/array_rand_variation3.phpt149
1 files changed, 149 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_rand_variation3.phpt b/ext/standard/tests/array/array_rand_variation3.phpt
new file mode 100644
index 0000000000..62ab6b8dbd
--- /dev/null
+++ b/ext/standard/tests/array/array_rand_variation3.phpt
@@ -0,0 +1,149 @@
+--TEST--
+Test array_rand() function : usage variation - with MultiDimensional array
+--FILE--
+<?php
+/* Prototype : mixed array_rand(array $input [, int $num_req])
+ * Description: Return key/keys for random entry/entries in the array
+ * Source code: ext/standard/array.c
+*/
+
+/*
+* Test behaviour of array_rand() function when multi-dimensional array
+* is passed to 'input' argument
+*/
+
+echo "*** Testing array_rand() : with multi-dimensional array ***\n";
+
+// initialise the multi-dimensional array
+$input = array(
+ // array with int values
+/*1*/ array(1, 2, 0, -0, -1, -2),
+
+ // array with float values
+ array(1.23, -1.23, 0.34, -0.34, 0e2, 2e-3, -2e2, -40e-2),
+
+ // array with single quoted strings
+/*3*/ array('one', '123numbers', 'hello\tworld', 'hello world\0', '12.34floatnum'),
+
+ // array with double quoted strings
+ array("one","123numbers", "hello\tworld", "hello world\0", "12.34floatnum"),
+
+ // array with bool values
+/*5*/ array(true, TRUE, FALSE, false, TrUe, FaLsE),
+
+ // array with hexa values
+ array(0x123, -0x123, 0xabc, 0xABC, 0xab),
+
+ // array with null values
+/*7*/ array(null, NULL, "\0", Null, NuLl)
+
+);
+
+// initialise 'num_req' variable
+$num_req = 3;
+
+// calling array_rand() function with multi-dimensional array
+var_dump( array_rand($input, $num_req) );
+
+// looping to test array_rand() with each sub-array in the multi-dimensional array
+echo "\n*** Testing array_rand() with arrays having different types of values ***\n";
+$counter = 1;
+foreach($input as $arr) {
+ echo "\n-- Iteration $counter --\n";
+ var_dump( array_rand($arr) ); // with default arguments
+ var_dump( array_rand($arr, 3) ); // with default as well as optional arguments
+ $counter++;
+}
+
+echo "Done";
+?>
+--EXPECTF--
+*** Testing array_rand() : with multi-dimensional array ***
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+
+*** Testing array_rand() with arrays having different types of values ***
+
+-- Iteration 1 --
+int(%d)
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+
+-- Iteration 2 --
+int(%d)
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+
+-- Iteration 3 --
+int(%d)
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+
+-- Iteration 4 --
+int(%d)
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+
+-- Iteration 5 --
+int(%d)
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+
+-- Iteration 6 --
+int(%d)
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+
+-- Iteration 7 --
+int(%d)
+array(3) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+ [2]=>
+ int(%d)
+}
+Done