~ubuntu-branches/ubuntu/hardy/php5/hardy-updates

« back to all changes in this revision

Viewing changes to ext/standard/tests/array/array_intersect_1.phpt

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-10-09 03:14:32 UTC
  • Revision ID: james.westby@ubuntu.com-20051009031432-kspik3lobxstafv9
Tags: upstream-5.0.5
ImportĀ upstreamĀ versionĀ 5.0.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--TEST--
 
2
Test of the *intersect* bunch of functions (both assoc and non-assoc)
 
3
--FILE--
 
4
<?php
 
5
error_reporting(E_ALL);
 
6
class cr {
 
7
        private $priv_member;
 
8
        public  $public_member;
 
9
        function cr($val) {
 
10
                $this->priv_member = $val;
 
11
                $this->public_member = $val;
 
12
        }
 
13
        static function comp_func_cr($a, $b) {
 
14
                if ($a->priv_member === $b->priv_member) return 0;
 
15
                return ($a->priv_member > $b->priv_member)? 1:-1;
 
16
        }
 
17
}
 
18
 
 
19
function comp_func($a, $b) {
 
20
        if ($a === $b) return 0;
 
21
        return ($a > $b)? 1:-1;
 
22
 
 
23
}
 
24
 
 
25
function comp_func_cr($a, $b) {
 
26
        if ($a->public_member === $b->public_member) return 0;
 
27
        return ($a->public_member > $b->public_member)? 1:-1;
 
28
}
 
29
 
 
30
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
 
31
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);
 
32
 
 
33
/* array_intersect() */
 
34
echo "begin ------------ array_intersect() ----------------------------\n";
 
35
echo '$a='.var_export($a,TRUE).";\n";
 
36
echo '$b='.var_export($b,TRUE).";\n";
 
37
echo 'var_dump(array_intersect($a, $b);'."\n";
 
38
var_dump(@array_intersect($a, $b));
 
39
echo "end   ------------ array_intersect() ----------------------------\n";
 
40
 
 
41
/* array_uintersect() */
 
42
echo "begin ------------ array_uintersect() ---------------------------\n";
 
43
echo '$a='.var_export($a,TRUE).";\n";
 
44
echo '$b='.var_export($b,TRUE).";\n";
 
45
echo 'var_dump(array_uintersect($a, $b, "comp_func_cr"));'."\n";
 
46
var_dump(array_uintersect($a, $b, "comp_func_cr"));
 
47
echo "end   ------------ array_uintersect() ---------------------------\n";
 
48
 
 
49
/* array_intersect_assoc() */
 
50
echo "begin ------------ array_intersect_assoc() ----------------------\n";
 
51
echo '$a='.var_export($a,TRUE).";\n";
 
52
echo '$b='.var_export($b,TRUE).";\n";
 
53
echo 'var_dump(array_intersect_assoc($a, $b));'."\n";
 
54
var_dump(@array_intersect_assoc($a, $b));
 
55
echo "end   ------------ array_intersect_assoc() ----------------------\n";
 
56
 
 
57
/* array_uintersect_assoc() */
 
58
echo "begin ------------ array_uintersect_assoc() ---------------------\n";
 
59
echo '$a='.var_export($a,TRUE).";\n";
 
60
echo '$b='.var_export($b,TRUE).";\n";
 
61
echo 'var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));'."\n";
 
62
var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
 
63
echo "end   ------------ array_uintersect_assoc() ---------------------\n";
 
64
 
 
65
/* array_intersect_uassoc() */
 
66
echo "begin ------------ array_intersect_uassoc() ---------------------\n";
 
67
echo '$a='.var_export($a,TRUE).";\n";
 
68
echo '$b='.var_export($b,TRUE).";\n";
 
69
echo 'var_dump(array_intersect_uassoc($a, $b, "comp_func"));'."\n";
 
70
var_dump(@array_intersect_uassoc($a, $b, "comp_func"));
 
71
echo "end   ------------ array_intersect_uassoc() ---------------------\n";
 
72
 
 
73
/* array_uintersect_uassoc() - with ordinary function */
 
74
echo "begin ------------ array_uintersect_uassoc() with ordinary func -\n";
 
75
echo '$a='.var_export($a,TRUE).";\n";
 
76
echo '$b='.var_export($b,TRUE).";\n";
 
77
echo 'var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));'."\n";
 
78
var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
 
79
echo "end   ------------ array_uintersect_uassoc() with ordinary func -\n";
 
80
 
 
81
/* array_uintersect_uassoc() - by method call */
 
82
echo "begin ------------ array_uintersect_uassoc() with method --------\n";
 
83
echo '$a='.var_export($a,TRUE).";\n";
 
84
echo '$b='.var_export($b,TRUE).";\n";
 
85
echo 'var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));'."\n";
 
86
var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
 
87
echo "end   ------------ array_uintersect_uassoc() with method --------\n";
 
88
?>
 
89
--EXPECTF--
 
90
begin ------------ array_intersect() ----------------------------
 
91
$a=array (
 
92
  '0.1' => 
 
93
  class cr {
 
94
    private $priv_member = 9;
 
95
    public $public_member = 9;
 
96
  },
 
97
  '0.5' => 
 
98
  class cr {
 
99
    private $priv_member = 12;
 
100
    public $public_member = 12;
 
101
  },
 
102
  0 => 
 
103
  class cr {
 
104
    private $priv_member = 23;
 
105
    public $public_member = 23;
 
106
  },
 
107
  1 => 
 
108
  class cr {
 
109
    private $priv_member = 4;
 
110
    public $public_member = 4;
 
111
  },
 
112
  2 => 
 
113
  class cr {
 
114
    private $priv_member = -15;
 
115
    public $public_member = -15;
 
116
  },
 
117
);
 
118
$b=array (
 
119
  '0.2' => 
 
120
  class cr {
 
121
    private $priv_member = 9;
 
122
    public $public_member = 9;
 
123
  },
 
124
  '0.5' => 
 
125
  class cr {
 
126
    private $priv_member = 22;
 
127
    public $public_member = 22;
 
128
  },
 
129
  0 => 
 
130
  class cr {
 
131
    private $priv_member = 3;
 
132
    public $public_member = 3;
 
133
  },
 
134
  1 => 
 
135
  class cr {
 
136
    private $priv_member = 4;
 
137
    public $public_member = 4;
 
138
  },
 
139
  2 => 
 
140
  class cr {
 
141
    private $priv_member = -15;
 
142
    public $public_member = -15;
 
143
  },
 
144
);
 
145
var_dump(array_intersect($a, $b);
 
146
array(0) {
 
147
}
 
148
end   ------------ array_intersect() ----------------------------
 
149
begin ------------ array_uintersect() ---------------------------
 
150
$a=array (
 
151
  '0.1' => 
 
152
  class cr {
 
153
    private $priv_member = 9;
 
154
    public $public_member = 9;
 
155
  },
 
156
  '0.5' => 
 
157
  class cr {
 
158
    private $priv_member = 12;
 
159
    public $public_member = 12;
 
160
  },
 
161
  0 => 
 
162
  class cr {
 
163
    private $priv_member = 23;
 
164
    public $public_member = 23;
 
165
  },
 
166
  1 => 
 
167
  class cr {
 
168
    private $priv_member = 4;
 
169
    public $public_member = 4;
 
170
  },
 
171
  2 => 
 
172
  class cr {
 
173
    private $priv_member = -15;
 
174
    public $public_member = -15;
 
175
  },
 
176
);
 
177
$b=array (
 
178
  '0.2' => 
 
179
  class cr {
 
180
    private $priv_member = 9;
 
181
    public $public_member = 9;
 
182
  },
 
183
  '0.5' => 
 
184
  class cr {
 
185
    private $priv_member = 22;
 
186
    public $public_member = 22;
 
187
  },
 
188
  0 => 
 
189
  class cr {
 
190
    private $priv_member = 3;
 
191
    public $public_member = 3;
 
192
  },
 
193
  1 => 
 
194
  class cr {
 
195
    private $priv_member = 4;
 
196
    public $public_member = 4;
 
197
  },
 
198
  2 => 
 
199
  class cr {
 
200
    private $priv_member = -15;
 
201
    public $public_member = -15;
 
202
  },
 
203
);
 
204
var_dump(array_uintersect($a, $b, "comp_func_cr"));
 
205
array(3) {
 
206
  ["0.1"]=>
 
207
  object(cr)#1 (2) {
 
208
    ["priv_member:private"]=>
 
209
    int(9)
 
210
    ["public_member"]=>
 
211
    int(9)
 
212
  }
 
213
  [1]=>
 
214
  object(cr)#4 (2) {
 
215
    ["priv_member:private"]=>
 
216
    int(4)
 
217
    ["public_member"]=>
 
218
    int(4)
 
219
  }
 
220
  [2]=>
 
221
  object(cr)#5 (2) {
 
222
    ["priv_member:private"]=>
 
223
    int(-15)
 
224
    ["public_member"]=>
 
225
    int(-15)
 
226
  }
 
227
}
 
228
end   ------------ array_uintersect() ---------------------------
 
229
begin ------------ array_intersect_assoc() ----------------------
 
230
$a=array (
 
231
  '0.1' => 
 
232
  class cr {
 
233
    private $priv_member = 9;
 
234
    public $public_member = 9;
 
235
  },
 
236
  '0.5' => 
 
237
  class cr {
 
238
    private $priv_member = 12;
 
239
    public $public_member = 12;
 
240
  },
 
241
  0 => 
 
242
  class cr {
 
243
    private $priv_member = 23;
 
244
    public $public_member = 23;
 
245
  },
 
246
  1 => 
 
247
  class cr {
 
248
    private $priv_member = 4;
 
249
    public $public_member = 4;
 
250
  },
 
251
  2 => 
 
252
  class cr {
 
253
    private $priv_member = -15;
 
254
    public $public_member = -15;
 
255
  },
 
256
);
 
257
$b=array (
 
258
  '0.2' => 
 
259
  class cr {
 
260
    private $priv_member = 9;
 
261
    public $public_member = 9;
 
262
  },
 
263
  '0.5' => 
 
264
  class cr {
 
265
    private $priv_member = 22;
 
266
    public $public_member = 22;
 
267
  },
 
268
  0 => 
 
269
  class cr {
 
270
    private $priv_member = 3;
 
271
    public $public_member = 3;
 
272
  },
 
273
  1 => 
 
274
  class cr {
 
275
    private $priv_member = 4;
 
276
    public $public_member = 4;
 
277
  },
 
278
  2 => 
 
279
  class cr {
 
280
    private $priv_member = -15;
 
281
    public $public_member = -15;
 
282
  },
 
283
);
 
284
var_dump(array_intersect_assoc($a, $b));
 
285
array(0) {
 
286
}
 
287
end   ------------ array_intersect_assoc() ----------------------
 
288
begin ------------ array_uintersect_assoc() ---------------------
 
289
$a=array (
 
290
  '0.1' => 
 
291
  class cr {
 
292
    private $priv_member = 9;
 
293
    public $public_member = 9;
 
294
  },
 
295
  '0.5' => 
 
296
  class cr {
 
297
    private $priv_member = 12;
 
298
    public $public_member = 12;
 
299
  },
 
300
  0 => 
 
301
  class cr {
 
302
    private $priv_member = 23;
 
303
    public $public_member = 23;
 
304
  },
 
305
  1 => 
 
306
  class cr {
 
307
    private $priv_member = 4;
 
308
    public $public_member = 4;
 
309
  },
 
310
  2 => 
 
311
  class cr {
 
312
    private $priv_member = -15;
 
313
    public $public_member = -15;
 
314
  },
 
315
);
 
316
$b=array (
 
317
  '0.2' => 
 
318
  class cr {
 
319
    private $priv_member = 9;
 
320
    public $public_member = 9;
 
321
  },
 
322
  '0.5' => 
 
323
  class cr {
 
324
    private $priv_member = 22;
 
325
    public $public_member = 22;
 
326
  },
 
327
  0 => 
 
328
  class cr {
 
329
    private $priv_member = 3;
 
330
    public $public_member = 3;
 
331
  },
 
332
  1 => 
 
333
  class cr {
 
334
    private $priv_member = 4;
 
335
    public $public_member = 4;
 
336
  },
 
337
  2 => 
 
338
  class cr {
 
339
    private $priv_member = -15;
 
340
    public $public_member = -15;
 
341
  },
 
342
);
 
343
var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
 
344
array(2) {
 
345
  [1]=>
 
346
  object(cr)#4 (2) {
 
347
    ["priv_member:private"]=>
 
348
    int(4)
 
349
    ["public_member"]=>
 
350
    int(4)
 
351
  }
 
352
  [2]=>
 
353
  object(cr)#5 (2) {
 
354
    ["priv_member:private"]=>
 
355
    int(-15)
 
356
    ["public_member"]=>
 
357
    int(-15)
 
358
  }
 
359
}
 
360
end   ------------ array_uintersect_assoc() ---------------------
 
361
begin ------------ array_intersect_uassoc() ---------------------
 
362
$a=array (
 
363
  '0.1' => 
 
364
  class cr {
 
365
    private $priv_member = 9;
 
366
    public $public_member = 9;
 
367
  },
 
368
  '0.5' => 
 
369
  class cr {
 
370
    private $priv_member = 12;
 
371
    public $public_member = 12;
 
372
  },
 
373
  0 => 
 
374
  class cr {
 
375
    private $priv_member = 23;
 
376
    public $public_member = 23;
 
377
  },
 
378
  1 => 
 
379
  class cr {
 
380
    private $priv_member = 4;
 
381
    public $public_member = 4;
 
382
  },
 
383
  2 => 
 
384
  class cr {
 
385
    private $priv_member = -15;
 
386
    public $public_member = -15;
 
387
  },
 
388
);
 
389
$b=array (
 
390
  '0.2' => 
 
391
  class cr {
 
392
    private $priv_member = 9;
 
393
    public $public_member = 9;
 
394
  },
 
395
  '0.5' => 
 
396
  class cr {
 
397
    private $priv_member = 22;
 
398
    public $public_member = 22;
 
399
  },
 
400
  0 => 
 
401
  class cr {
 
402
    private $priv_member = 3;
 
403
    public $public_member = 3;
 
404
  },
 
405
  1 => 
 
406
  class cr {
 
407
    private $priv_member = 4;
 
408
    public $public_member = 4;
 
409
  },
 
410
  2 => 
 
411
  class cr {
 
412
    private $priv_member = -15;
 
413
    public $public_member = -15;
 
414
  },
 
415
);
 
416
var_dump(array_intersect_uassoc($a, $b, "comp_func"));
 
417
array(0) {
 
418
}
 
419
end   ------------ array_intersect_uassoc() ---------------------
 
420
begin ------------ array_uintersect_uassoc() with ordinary func -
 
421
$a=array (
 
422
  '0.1' => 
 
423
  class cr {
 
424
    private $priv_member = 9;
 
425
    public $public_member = 9;
 
426
  },
 
427
  '0.5' => 
 
428
  class cr {
 
429
    private $priv_member = 12;
 
430
    public $public_member = 12;
 
431
  },
 
432
  0 => 
 
433
  class cr {
 
434
    private $priv_member = 23;
 
435
    public $public_member = 23;
 
436
  },
 
437
  1 => 
 
438
  class cr {
 
439
    private $priv_member = 4;
 
440
    public $public_member = 4;
 
441
  },
 
442
  2 => 
 
443
  class cr {
 
444
    private $priv_member = -15;
 
445
    public $public_member = -15;
 
446
  },
 
447
);
 
448
$b=array (
 
449
  '0.2' => 
 
450
  class cr {
 
451
    private $priv_member = 9;
 
452
    public $public_member = 9;
 
453
  },
 
454
  '0.5' => 
 
455
  class cr {
 
456
    private $priv_member = 22;
 
457
    public $public_member = 22;
 
458
  },
 
459
  0 => 
 
460
  class cr {
 
461
    private $priv_member = 3;
 
462
    public $public_member = 3;
 
463
  },
 
464
  1 => 
 
465
  class cr {
 
466
    private $priv_member = 4;
 
467
    public $public_member = 4;
 
468
  },
 
469
  2 => 
 
470
  class cr {
 
471
    private $priv_member = -15;
 
472
    public $public_member = -15;
 
473
  },
 
474
);
 
475
var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
 
476
array(2) {
 
477
  [1]=>
 
478
  object(cr)#4 (2) {
 
479
    ["priv_member:private"]=>
 
480
    int(4)
 
481
    ["public_member"]=>
 
482
    int(4)
 
483
  }
 
484
  [2]=>
 
485
  object(cr)#5 (2) {
 
486
    ["priv_member:private"]=>
 
487
    int(-15)
 
488
    ["public_member"]=>
 
489
    int(-15)
 
490
  }
 
491
}
 
492
end   ------------ array_uintersect_uassoc() with ordinary func -
 
493
begin ------------ array_uintersect_uassoc() with method --------
 
494
$a=array (
 
495
  '0.1' => 
 
496
  class cr {
 
497
    private $priv_member = 9;
 
498
    public $public_member = 9;
 
499
  },
 
500
  '0.5' => 
 
501
  class cr {
 
502
    private $priv_member = 12;
 
503
    public $public_member = 12;
 
504
  },
 
505
  0 => 
 
506
  class cr {
 
507
    private $priv_member = 23;
 
508
    public $public_member = 23;
 
509
  },
 
510
  1 => 
 
511
  class cr {
 
512
    private $priv_member = 4;
 
513
    public $public_member = 4;
 
514
  },
 
515
  2 => 
 
516
  class cr {
 
517
    private $priv_member = -15;
 
518
    public $public_member = -15;
 
519
  },
 
520
);
 
521
$b=array (
 
522
  '0.2' => 
 
523
  class cr {
 
524
    private $priv_member = 9;
 
525
    public $public_member = 9;
 
526
  },
 
527
  '0.5' => 
 
528
  class cr {
 
529
    private $priv_member = 22;
 
530
    public $public_member = 22;
 
531
  },
 
532
  0 => 
 
533
  class cr {
 
534
    private $priv_member = 3;
 
535
    public $public_member = 3;
 
536
  },
 
537
  1 => 
 
538
  class cr {
 
539
    private $priv_member = 4;
 
540
    public $public_member = 4;
 
541
  },
 
542
  2 => 
 
543
  class cr {
 
544
    private $priv_member = -15;
 
545
    public $public_member = -15;
 
546
  },
 
547
);
 
548
var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
 
549
array(2) {
 
550
  [1]=>
 
551
  object(cr)#4 (2) {
 
552
    ["priv_member:private"]=>
 
553
    int(4)
 
554
    ["public_member"]=>
 
555
    int(4)
 
556
  }
 
557
  [2]=>
 
558
  object(cr)#5 (2) {
 
559
    ["priv_member:private"]=>
 
560
    int(-15)
 
561
    ["public_member"]=>
 
562
    int(-15)
 
563
  }
 
564
}
 
565
end   ------------ array_uintersect_uassoc() with method --------