欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

请教 要求x包含y,x按y排序

程序员文章站 2022-05-16 11:54:14
...
怎么说呢,其实就是要求x包含y,x按y排序

比较x和y两个数组,
如果x长度大于y,则将x数组中多出的键追加到y数组后面
例如:
$x = array(0=>'a', 1=>'b', 2=>'c', 3=>'d', 4=>'e');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(2=>'c', 4=>'e', 0=>'a', 1=>'b', 3=>'d');

如果x长度小于y,则先将y数组中多出的键删除
$x = array(0=>'a', 1=>'b');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(0=>'a', 1=>'b');

回复讨论(解决方案)

第一问

$x = array(0=>'a', 1=>'b', 2=>'c', 3=>'d', 4=>'e');$y = array(2=>'c', 4=>'e', 0=>'a');$c = array_diff_key($x, $y);$z = $y + $c;print_r($z);

Array(    [2] => c    [4] => e    [0] => a    [1] => b    [3] => d)


第二问不明晰
$x = array(0=>'a', 1=>'b');
$y = array(2=>'c', 4=>'e', 0=>'a');
则结果为 array(0=>'a', 1=>'b'); //这不就是 $x 吗?
看不出与 $y 有什么关系



谢谢。学习了!
差集、交集、并集。。。 我太笨了

$x = array(2=>'c', 4=>'e', 0=>'a');
$y = array(0=>'a', 1=>'b', 3=>'d', 4=>'e');
//要求结果为:array(0=>'a', 4=>'e', 2=>'c');

//先求y x 交集(是yx不是xy)
$jj = array_intersect($y, $x);
//再求x y 差集
$bj = array_diff_key($x, $y);

$z = $jj + $bj;
print_r($z);