📄 array_intersect_1.phpt
字号:
--TEST--Test of the *intersect* bunch of functions (both assoc and non-assoc)--FILE--<?phperror_reporting(E_ALL);class cr { private $priv_member; public $public_member; function cr($val) { $this->priv_member = $val; $this->public_member = $val; } static function comp_func_cr($a, $b) { if ($a->priv_member === $b->priv_member) return 0; return ($a->priv_member > $b->priv_member)? 1:-1; }}function comp_func($a, $b) { if ($a === $b) return 0; return ($a > $b)? 1:-1;}function comp_func_cr($a, $b) { if ($a->public_member === $b->public_member) return 0; return ($a->public_member > $b->public_member)? 1:-1;}$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);/* array_uintersect() */echo "begin ------------ array_uintersect() ---------------------------\n";echo '$a='.var_export($a,TRUE).";\n";echo '$b='.var_export($b,TRUE).";\n";echo 'var_dump(array_uintersect($a, $b, "comp_func_cr"));'."\n";var_dump(array_uintersect($a, $b, "comp_func_cr"));echo "end ------------ array_uintersect() ---------------------------\n";/* array_uintersect_assoc() */echo "begin ------------ array_uintersect_assoc() ---------------------\n";echo '$a='.var_export($a,TRUE).";\n";echo '$b='.var_export($b,TRUE).";\n";echo 'var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));'."\n";var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));echo "end ------------ array_uintersect_assoc() ---------------------\n";/* array_uintersect_uassoc() - with ordinary function */echo "begin ------------ array_uintersect_uassoc() with ordinary func -\n";echo '$a='.var_export($a,TRUE).";\n";echo '$b='.var_export($b,TRUE).";\n";echo 'var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));'."\n";var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));echo "end ------------ array_uintersect_uassoc() with ordinary func -\n";/* array_uintersect_uassoc() - by method call */echo "begin ------------ array_uintersect_uassoc() with method --------\n";echo '$a='.var_export($a,TRUE).";\n";echo '$b='.var_export($b,TRUE).";\n";echo 'var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));'."\n";var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));echo "end ------------ array_uintersect_uassoc() with method --------\n";?>--EXPECTF--begin ------------ array_uintersect() ---------------------------$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect($a, $b, "comp_func_cr"));array(3) { ["0.1"]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(9) ["public_member"]=> int(9) } [1]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(4) ["public_member"]=> int(4) } [2]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(-15) ["public_member"]=> int(-15) }}end ------------ array_uintersect() ---------------------------begin ------------ array_uintersect_assoc() ---------------------$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));array(2) { [1]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(4) ["public_member"]=> int(4) } [2]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(-15) ["public_member"]=> int(-15) }}end ------------ array_uintersect_assoc() ---------------------begin ------------ array_uintersect_uassoc() with ordinary func -$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));array(2) { [1]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(4) ["public_member"]=> int(4) } [2]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(-15) ["public_member"]=> int(-15) }}end ------------ array_uintersect_uassoc() with ordinary func -begin ------------ array_uintersect_uassoc() with method --------$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));array(2) { [1]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(4) ["public_member"]=> int(4) } [2]=> object(cr)#%d (2) { ["priv_member":"cr":private]=> int(-15) ["public_member"]=> int(-15) }}end ------------ array_uintersect_uassoc() with method ----------UEXPECTF--begin ------------ array_uintersect() ---------------------------$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect($a, $b, "comp_func_cr"));array(3) { [u"0.1"]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(9) [u"public_member"]=> int(9) } [1]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(4) [u"public_member"]=> int(4) } [2]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(-15) [u"public_member"]=> int(-15) }}end ------------ array_uintersect() ---------------------------begin ------------ array_uintersect_assoc() ---------------------$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));array(2) { [1]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(4) [u"public_member"]=> int(4) } [2]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(-15) [u"public_member"]=> int(-15) }}end ------------ array_uintersect_assoc() ---------------------begin ------------ array_uintersect_uassoc() with ordinary func -$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));array(2) { [1]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(4) [u"public_member"]=> int(4) } [2]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(-15) [u"public_member"]=> int(-15) }}end ------------ array_uintersect_uassoc() with ordinary func -begin ------------ array_uintersect_uassoc() with method --------$a=array ( '0.1' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 12, 'public_member' => 12, )), 0 => cr::__set_state(array( 'priv_member' => 23, 'public_member' => 23, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);$b=array ( '0.2' => cr::__set_state(array( 'priv_member' => 9, 'public_member' => 9, )), '0.5' => cr::__set_state(array( 'priv_member' => 22, 'public_member' => 22, )), 0 => cr::__set_state(array( 'priv_member' => 3, 'public_member' => 3, )), 1 => cr::__set_state(array( 'priv_member' => 4, 'public_member' => 4, )), 2 => cr::__set_state(array( 'priv_member' => -15, 'public_member' => -15, )),);var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));array(2) { [1]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(4) [u"public_member"]=> int(4) } [2]=> object(cr)#%d (2) { [u"priv_member":u"cr":private]=> int(-15) [u"public_member"]=> int(-15) }}end ------------ array_uintersect_uassoc() with method --------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -