File: array_diff_key_variation1.phpt

package info (click to toggle)
php5 5.2.6.dfsg.1-1%2Blenny16
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 81,956 kB
  • ctags: 45,717
  • sloc: ansic: 545,818; sh: 18,463; php: 12,555; xml: 4,362; yacc: 2,430; lex: 2,294; makefile: 1,193; tcl: 1,128; awk: 693; cpp: 682; perl: 71; pascal: 24; sql: 22
file content (89 lines) | stat: -rw-r--r-- 2,512 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
--TEST--
array_diff_key() : type variations 
--FILE--
<?php
/*
* proto array array_diff_key(array arr1, array arr2 [, array ...])
* Function is implemented in ext/standard/array.c
*/
/*
* Testing how array_diff_key treats keys that are numbers, floating point numbers or strings.
*/
$arr1 = array(1 => 'a', 2 => 'b', 3 => 'c', 'key1' => 'value');
$arr2 = array(1.00 => 'a', 2.00 => 'b', 3.00 => 'c', 'key2' => 'value');
$arr3 = array('1' => 'a', '2' => 'b', '3' => 'c', 'key3' => 'value');
$arr4 = array('1.00' => 'a', '2.00' => 'b', '3.00' => 'c', 'key4' => 'value'); //$arr4 looks different to the other three arrays.
print "Result of comparing integers and floating point value:\n"; //1 and 1.00 are treated as the same thing
print_r(array_diff_key($arr1, $arr2));
print_r(array_diff_key($arr2, $arr1));
print "Result of comparing integers and strings containing an integers:\n"; //1 and the string 1 are treated as the same thing
print_r(array_diff_key($arr1, $arr3));
print_r(array_diff_key($arr3, $arr1));
print "Result of comparing integers and strings containing floating points:\n"; //1 and the string 1.00 are not treated as the same thing
print_r(array_diff_key($arr1, $arr4));
print_r(array_diff_key($arr4, $arr1));
print "Result of comparing floating points and strings containing integers:\n";
print_r(array_diff_key($arr2, $arr3)); //1.00 and the string 1 are treated as the same thing
print_r(array_diff_key($arr3, $arr2));
print "Result of comparing strings containing integers and strings containing floating points:\n"; //the strings 1 and 1.00 are not treated as the same thing.
print_r(array_diff_key($arr3, $arr4));
print_r(array_diff_key($arr4, $arr3));
?>
--EXPECTF--
Result of comparing integers and floating point value:
Array
(
    [key1] => value
)
Array
(
    [key2] => value
)
Result of comparing integers and strings containing an integers:
Array
(
    [key1] => value
)
Array
(
    [key3] => value
)
Result of comparing integers and strings containing floating points:
Array
(
    [1] => a
    [2] => b
    [3] => c
    [key1] => value
)
Array
(
    [1.00] => a
    [2.00] => b
    [3.00] => c
    [key4] => value
)
Result of comparing floating points and strings containing integers:
Array
(
    [key2] => value
)
Array
(
    [key3] => value
)
Result of comparing strings containing integers and strings containing floating points:
Array
(
    [1] => a
    [2] => b
    [3] => c
    [key3] => value
)
Array
(
    [1.00] => a
    [2.00] => b
    [3.00] => c
    [key4] => value
)