mirror of
https://github.com/php/php-src.git
synced 2024-10-19 07:22:40 +00:00
169 lines
3.9 KiB
PHP
169 lines
3.9 KiB
PHP
--TEST--
|
|
Test array_rand() function : usage variation - with associative arrays for 'input' parameter
|
|
--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 associative array is passed to
|
|
* the 'input' parameter in the function call
|
|
*/
|
|
|
|
echo "*** Testing array_rand() : with associative arrays ***\n";
|
|
|
|
// initialise associative arrays
|
|
$asso_arrays = array(
|
|
|
|
// array with numeric keys
|
|
/*1*/ array(1 => 'one', 2 => 2, 1234567890 => 'big', -1 => 'negative key',
|
|
2.3 => 'float key', 0 => "zero key", 0.2 => 'decimal key',
|
|
2e2 => 'exp key1', -2e3 => 'negative exp key'),
|
|
|
|
// array with string keys
|
|
array('one' => 1, "two" => 2.0, "three" => 'three',
|
|
'12twelve' => 12.00, "" => 'empty string', " " => "space key"),
|
|
|
|
// array with hexa values as keys
|
|
/*3*/ array(0xabc => 2748, 0x12f => '303', 0xff => "255", -0xff => "-255"),
|
|
|
|
// array with octal values as keys
|
|
array(0123 => 83, 0129 => 10, 010 => "8", -0348 => "-28", 0012 => '10'),
|
|
|
|
// array with bool values as keys
|
|
array(TRUE => '1', true => true, TrUe => "TRUE",
|
|
FALSE => '0', false => false, FaLsE => "FALSE"),
|
|
|
|
// array with special chars as keys
|
|
/*6*/ array('##' => "key1", '&$r' => 'key2', '!' => "key3", '<>' =>'key4',
|
|
"NULL" => 'key5', "\n" => 'newline as key',
|
|
"\t" => "tab as key", "'" => 'single quote as key',
|
|
'"' => 'double quote as key', "\0" => "null char as key")
|
|
);
|
|
|
|
/* looping to test array_rand() function with different arrays having
|
|
* different types of keys
|
|
*/
|
|
$counter = 1;
|
|
foreach($asso_arrays as $input) {
|
|
echo "\n-- Iteration $counter --\n";
|
|
|
|
// with default argument
|
|
echo"\nWith default argument\n";
|
|
var_dump( array_rand($input) );
|
|
|
|
// with default and optional arguments
|
|
echo"\nWith num_req = 1\n";
|
|
var_dump( array_rand($input, 1) ); // with $num_req=1
|
|
echo"\nWith num_req = 2\n";
|
|
var_dump( array_rand($input, 2) ); // with $num_req=2
|
|
|
|
$counter++;
|
|
} // end of for loop
|
|
|
|
|
|
echo "Done";
|
|
?>
|
|
--EXPECTREGEX--
|
|
\*\*\* Testing array_rand\(\) : with associative arrays \*\*\*
|
|
|
|
-- Iteration 1 --
|
|
|
|
With default argument
|
|
int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
|
|
|
|
With num_req = 1
|
|
int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
|
|
|
|
With num_req = 2
|
|
array\(2\) {
|
|
\[0\]=>
|
|
int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
|
|
\[1\]=>
|
|
int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
|
|
}
|
|
|
|
-- Iteration 2 --
|
|
|
|
With default argument
|
|
string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
|
|
|
|
With num_req = 1
|
|
string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
|
|
|
|
With num_req = 2
|
|
array\(2\) {
|
|
\[0\]=>
|
|
string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
|
|
\[1\]=>
|
|
string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
|
|
}
|
|
|
|
-- Iteration 3 --
|
|
|
|
With default argument
|
|
int\([23-]*[2570]*[345]*[58]*\)
|
|
|
|
With num_req = 1
|
|
int\([23-]*[2570]*[345]*[58]*\)
|
|
|
|
With num_req = 2
|
|
array\(2\) {
|
|
\[0\]=>
|
|
int\([23-]*[2570]*[345]*[58]*\)
|
|
\[1\]=>
|
|
int\([23-]*[2570]*[345]*[58]*\)
|
|
}
|
|
|
|
-- Iteration 4 --
|
|
|
|
With default argument
|
|
int\([18-]*[023]*[8]*\)
|
|
|
|
With num_req = 1
|
|
int\([18-]*[023]*[8]*\)
|
|
|
|
With num_req = 2
|
|
array\(2\) {
|
|
\[0\]=>
|
|
int\([18-]*[023]*[8]*\)
|
|
\[1\]=>
|
|
int\([18-]*[023]*[8]*\)
|
|
}
|
|
|
|
-- Iteration 5 --
|
|
|
|
With default argument
|
|
int\([01]\)
|
|
|
|
With num_req = 1
|
|
int\([01]\)
|
|
|
|
With num_req = 2
|
|
array\(2\) {
|
|
\[0\]=>
|
|
int\([01]\)
|
|
\[1\]=>
|
|
int\([01]\)
|
|
}
|
|
|
|
-- Iteration 6 --
|
|
|
|
With default argument
|
|
string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
|
|
|
|
With num_req = 1
|
|
string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
|
|
|
|
With num_req = 2
|
|
array\(2\) {
|
|
\[0\]=>
|
|
string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
|
|
\[1\]=>
|
|
string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
|
|
}
|
|
Done
|
|
|